diff options
123 files changed, 9297 insertions, 25081 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..b7cc1348 --- /dev/null +++ b/.gitignore @@ -0,0 +1,84 @@ +*.o +*.a +*.lo +*.la +.deps +.libs +.dirstamp +Makefile +Makefile.in +aclocal.m4 +config.guess +config.h +config.h.in +config.log +config.status +config.sub +configure +depcomp +compile +install-sh +libtool +ltmain.sh +missing +stamp-h1 +autom4te.cache +test-driver +m4/ +!m4/configmake.m4 + +connman.pc +include/connman +include/version.h +src/builtin.h +src/connmand +src/connman.conf +src/connman.service +src/net.connman.service +src/*-connman.rules +src/connman-wait-online.service +src/connmand-wait-online +plugins/connman.policy +scripts/connman +scripts/openconnect-script +scripts/openvpn-script +scripts/connman_resolvconf.conf +client/connmanctl +tools/wispr +tools/dhcp-test +tools/dhcp-server-test +tools/addr-test +tools/tap-test +tools/web-test +tools/wpad-test +tools/resolv-test +tools/polkit-test +tools/iptables-test +tools/iptables-unit +tools/dnsproxy-test +tools/supplicant-test +tools/dbus-test +tools/stats-tool +tools/stats-ringbuffer-dump +tools/private-network-test +tools/session-test +tools/netlink-test +unit/test-ippool +unit/test-nat + +doc/*.bak +doc/*.stamp +doc/connman.* +doc/*.1 +doc/*.5 +doc/*.8 +!doc/*.1.in +!doc/*.5.in +!doc/*.8.in +doc/connman-*.txt + +vpn/builtin.h +vpn/connman-vpnd +vpn/connman-vpn-dbus.conf +vpn/connman-vpn.service +vpn/net.connman.vpn.service diff --git a/.mailmap b/.mailmap new file mode 100644 index 00000000..1e374a64 --- /dev/null +++ b/.mailmap @@ -0,0 +1,13 @@ +Luiz Augusto von Dentz <luiz.dentz-von@nokia.com> <luiz.dentz-von@nokia.com> +Leena Gunda <leena.gunda@wipro.com> <leena.gunda@wipro.com> +Flávio Ceolin <flavio.ceolin@profusion.mobi> <flavio.ceolin@profusion.mobi> +Daniel Wagner <daniel.wagner@bmw-carit.de> <daniel.wagner@bmw-carit.de> +Zhang Zhengguang <zhengguang.zhang@intel.com> <zhengguang.zhang@intel.com> +Roger Wang <roger.wang@intel.com> <roger.wang@intel.com> +Gergely Riskó <gergely@risko.hu> <gergely@risko.hu> +Yann E. Morin <yann.morin.1998@free.fr> <yann.morin.1998@free.fr> +Yusuke Nakamura <ynakamura@jp.adit-jv.com> <ynakamura@jp.adit-jv.com> +Bing Niu <bing.niu@intel.com> <bing.niu@intel.com> +Naveen Singh <naveensingh0977@gmail.com> <naveensingh0977@gmail.com> +Mylène Josserand <josserand.mylene@gmail.com> <josserand.mylene@gmail.com> +Måns Rullgård <mans@mansr.com> <mans@mansr.com> @@ -90,3 +90,44 @@ Andreas Oberritter <obi@opendreambox.org> Arman Uguray <armansito@chromium.org> Vinicius Costa Gomes <vcgomes@gmail.com> Marcus Folkesson <marcus.folkesson@gmail.com> +Michael Olbrich <m.olbrich@pengutronix.de> +Harish Jenny K N <harish_kandiga@mentor.com> +Jaakko Hannikainen <jaakko.hannikainen@intel.com> +Adam Moore <adam.moore@savantsystems.com> +Marko Sulejic <marko.sulejic@hale.at> +Marcin Niestrój <m.niestroj@grinn-global.com> +Frank Stevers <f.stevers@ultimaker.com> +Laurent Vaudoit <laurent.vaudoit@gmail.com> +Abtin Keshavarzian <abtink@nestlabs.com> +Naveen Singh <naveensingh0977@gmail.com> +Mylène Josserand <josserand.mylene@gmail.com> +John Ernberg <john.ernberg@actia.se> +Niraj Kumar Goit <niraj.g@samsung.com> +Wu Zheng <wu.zheng@intel.com> +Milind Ramesh Murhekar <m.murhekar@samsung.com> +Nishant Chaprana <n.chaprana@samsung.com> +Hendrik Donner <hendrik@rennod.org> +Ravi Prasad RK <ravi.rk@samsung.com> +Krisztian Litkey <kli@iki.fi> +Jose Blanquicet <blanquicet@gmail.com> +Frédéric Dalleau <frederic.dalleau@collabora.co.uk> +Yusuke Nakamura <yusuke1653381@gmail.com> +Maxime Chevallier <maxime.chevallier@smile.fr> +Sam Nazarko <email@samnazarko.co.uk> +Kristian Klausen <klausenbusk@hotmail.com> +Måns Rullgård <mans@mansr.com> +Michele Dionisio <michele.dionisio@gmail.com> +Alexander Kochetkov <al.kochet@gmail.com> +Ioan-Adrian Ratiu <adrian.ratiu@ni.com> +Pantelis Antoniou <pantelis.antoniou@konsulko.com> +Bernhard Lichtinger <bernhard.lichtinger@lrz.de> +Andreas Smas <andreas@lonelycoder.com> +Ingo Albrecht <randomice@quantentunnel.de> +Scott Valentine <svalentine@ikayzo.com> +Craig McQueen <craig.mcqueen@innerrange.com> +Tobias Klauser <tklauser@distanz.ch> +Dmitry Rozhkov <dmitry.rozhkov@linux.intel.com> +Bjoern Thorwirth <external.bjoern.thorwirth@de.bosch.com> +Maxin B. John <maxin.john@intel.com> +Heghedus Razvan <razvan.heghedus@ni.com> +Guillaume Deroire <guillaume.deroire@hach.com> diff --git a/ChangeLog b/ChangeLog index 11e08cdc..df80251f 100755..100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,83 @@ +ver 1.35: + Fix issue with malformed DNS response handling. + Fix issue with routing and disabled online check. + Fix issue with handling IPv4 configuration methods. + Fix issue with multiple link-local connections. + Fix issue with proxy domain configuration. + +ver 1.34: + Fix issue with recognizing bonding interfaces. + Fix issue with adjtimex usage for kernel clock tuning. + Fix issue with IP configuration on dual configuration. + Fix issue with service ordering via PreferredTechnologies. + Fix issue with Bluetooth state changes before disconnection. + Fix issue with WiFi connected flag after disconnection. + Fix issue with handling WiFi service disconnect reason. + Fix issue with memory leak for WiFi Display information. + Fix issue with callbacks after WPS disconnection. + Fix issue with potentially leaking addrinfo memory. + Fix issue with handling of malformed HTTP response. + Fix issue with error handling when enabling Tethering. + Fix issue with nameserver and search domain ordering. + Fix issue with updating nameservers after DNS changed. + Fix issue with updating nameservers during address change. + Fix issue with updating timeservers during address change. + Fix issue with order of subnet and router DHCP options. + Fix issue with socket creating and bind latency for DHCP. + Add support for DHCP Vendor Class ID configuration setting. + Add support for configuration for service online check handling. + Add support for additional 802.1X certificate options. + Add support for automatically detecting root NFS. + Add support for nftables based firewalls. + Add support for new Wireless Daemon (iwd). + +ver 1.33: + Fix issue with old IP address from DHCP. + Fix issue with DHCP lease timer handling. + Fix issue with infinite lease and DHCPv6. + Fix issue with network connectable handling. + Fix issue with handling WiFi interface discovery. + Add support for WiFi fast-reconnect and band-steering. + +ver 1.32: + Fix issue with DNS proxy response handling. + Fix issue with nameservers after DHCP renewal. + Fix issue with DHCP request and IP link local. + Fix issue with DHCP timer removal handling. + Fix issue with missing MTU option from DHCP. + Fix issue with passphrases and space characters. + Fix issue with passphrases after WPS provisioning. + Fix issue with memory leak and wpa_supplicant. + Fix issue with memory leak and service ordering. + Add support for handling OpenVPN TAP devices. + Remove support for BlueZ 4.x interfaces. + +ver 1.31: + Fix issue with DNS TTL and CLASS field length. + Fix issue with handling of ClearProperty method. + Fix issue with subnet assignment for tethering. + Fix issue with search domain reconfiguration. + Fix issue with Bluetooth adapter handling. + Fix issue with DHCP handling and OFFER stage. + Add support for handling multiple contexts. + Add support for handling IPv6 timeservers. + Add support for handling DSA interfaces. + Add support for symlinking resolv.conf file. + Add support for connman-wait-online service. + +ver 1.30: + Fix issue with pending DNS request during server change. + Fix issue with empty strings in nameservers configuration. + Fix issue with time servers during IP configuration change. + Fix issue with 4-way handshake during roaming. + Fix issue with open WiFi networks security. + Fix issue with support for WiFi AnonymousIdentity. + Fix issue with memory leak and DHCPv6 DUID handling. + Fix issue with DHCP client and P2P interaction. + Fix issue with handling provision file updates. + Fix issue with VPN state updates. + Disable 6to4 support by default. + ver 1.29: Fix issue with IPv6 autoconfiguration when disabled. Fix issue with IPv6 temporary route handling. diff --git a/Makefile.am b/Makefile.am index 82c13dd8..76c5419c 100755 --- a/Makefile.am +++ b/Makefile.am @@ -107,7 +107,7 @@ MANUAL_PAGES = if TIZEN_EXT sbin_PROGRAMS = else -sbin_PROGRAMS = src/connmand +sbin_PROGRAMS = src/connmand src/connmand-wait-online endif src_connmand_SOURCES = $(gdhcp_sources) $(gweb_sources) \ @@ -124,18 +124,33 @@ src_connmand_SOURCES = $(gdhcp_sources) $(gweb_sources) \ src/storage.c src/dbus.c src/config.c \ src/technology.c src/counter.c src/ntp.c \ src/session.c src/tethering.c src/wpad.c src/wispr.c \ - src/stats.c src/iptables.c src/dnsproxy.c src/6to4.c \ + src/stats.c src/dnsproxy.c src/6to4.c \ src/ippool.c src/bridge.c src/nat.c src/ipaddress.c \ - src/inotify.c src/firewall.c src/ipv6pd.c src/peer.c \ + src/inotify.c src/ipv6pd.c src/peer.c \ src/peer_service.c src/machine.c src/util.c src_connmand_LDADD = gdbus/libgdbus-internal.la $(builtin_libadd) \ - @GLIB_LIBS@ @DBUS_LIBS@ @XTABLES_LIBS@ @GNUTLS_LIBS@ @LIBSYSTEMD_LIBS@ \ + @GLIB_LIBS@ @DBUS_LIBS@ @GNUTLS_LIBS@ @LIBSYSTEMD_LIBS@ \ -lresolv -ldl -lrt src_connmand_LDFLAGS = -Wl,--export-dynamic -pie \ -Wl,--version-script=$(srcdir)/src/connman.ver +src_connmand_wait_online_SOURCES = src/connmand-wait-online.c + +src_connmand_wait_online_LDADD = gdbus/libgdbus-internal.la \ + @GLIB_LIBS@ @DBUS_LIBS@ + +if XTABLES +src_connmand_SOURCES += src/iptables.c src/firewall-iptables.c +src_connmand_LDADD += @XTABLES_LIBS@ +endif + +if NFTABLES +src_connmand_SOURCES += src/firewall-nftables.c +src_connmand_LDADD += @NFTABLES_LIBS@ +endif + if VPN vpn_plugin_LTLIBRARIES = @@ -170,7 +185,7 @@ vpn_connman_vpnd_SOURCES = $(gdhcp_sources) $(builtin_vpn_sources) \ src/session.c src/tethering.c src/wpad.c src/wispr.c \ src/stats.c src/iptables.c src/dnsproxy.c src/6to4.c \ src/ippool.c src/bridge.c src/nat.c src/ipaddress.c \ - src/inotify.c src/firewall.c src/ipv6pd.c src/peer.c \ + src/inotify.c src/firewall-iptables.c src/ipv6pd.c src/peer.c \ src/peer_service.c src/machine.c src/util.c \ vpn/vpn-agent.c vpn/vpn-agent.h \ vpn/vpn-config.c @@ -192,8 +207,8 @@ endif CLEANFILES = src/connman.conf $(BUILT_SOURCES) $(service_files) -statedir = $(localstatedir)/run/connman -vpn_statedir = $(localstatedir)/run/connman-vpn +statedir = $(runstatedir)/connman +vpn_statedir = $(runstatedir)/connman-vpn if VPN vpn_plugindir = $(libdir)/connman/plugins-vpn @@ -222,7 +237,7 @@ build_vpn_plugindir = $(vpn_plugindir) endif endif -AM_CFLAGS = @DBUS_CFLAGS@ @GLIB_CFLAGS@ @XTABLES_CFLAGS@ @LIBSYSTEMD_CFLAGS@\ +AM_CFLAGS = @DBUS_CFLAGS@ @GLIB_CFLAGS@ @LIBSYSTEMD_CFLAGS@\ @GNUTLS_CFLAGS@ $(builtin_cflags) \ -DCONNMAN_PLUGIN_BUILTIN \ -DSTATEDIR=\""$(statedir)"\" \ @@ -240,7 +255,7 @@ else AM_CPPFLAGS = -I$(builddir)/include -I$(builddir)/src -I$(srcdir)/gdbus endif -src_connmand_CFLAGS = @DBUS_CFLAGS@ @GLIB_CFLAGS@ @XTABLES_CFLAGS@ \ +src_connmand_CFLAGS = @DBUS_CFLAGS@ @GLIB_CFLAGS@ \ @GNUTLS_CFLAGS@ $(builtin_cflags) \ -DCONNMAN_PLUGIN_BUILTIN \ -DSTATEDIR=\""$(statedir)"\" \ @@ -269,6 +284,16 @@ vpn_connman_vpnd_CFLAGS = @DBUS_CFLAGS@ @GLIB_CFLAGS@ @XTABLES_CFLAGS@ \ endif +if XTABLES +AM_CFLAGS += @XTABLES_CFLAGS@ +src_connmand_CFLAGS += @XTABLES_CFLAGS@ +endif + +if NFTABLES +AM_CFLAGS += @NFTABLES_CFLAGS@ +src_connmand_CFLAGS += @NFTABLES_CFLAGS@ +endif + EXTRA_DIST += vpn/vpn-dbus.conf vpn/vpn-polkit.conf script_DATA = @@ -280,8 +305,6 @@ include Makefile.plugins if CLIENT bin_PROGRAMS += client/connmanctl -#MANUAL_PAGES = doc/connmanctl.1 - client_connmanctl_SOURCES = client/dbus_helpers.h client/dbus_helpers.c \ client/services.h client/services.c \ client/commands.h client/commands.c \ @@ -316,9 +339,9 @@ noinst_PROGRAMS += tools/supplicant-test \ tools/dhcp-test tools/dhcp-server-test \ tools/addr-test tools/web-test tools/resolv-test \ tools/dbus-test tools/polkit-test \ - tools/iptables-test tools/tap-test tools/wpad-test \ + tools/tap-test tools/wpad-test \ tools/stats-tool tools/private-network-test \ - tools/session-test tools/iptables-unit \ + tools/session-test \ tools/dnsproxy-test tools/netlink-test tools_supplicant_test_SOURCES = tools/supplicant-test.c \ @@ -349,9 +372,6 @@ tools_dbus_test_LDADD = gdbus/libgdbus-internal.la @GLIB_LIBS@ @DBUS_LIBS@ tools_polkit_test_LDADD = @DBUS_LIBS@ -tools_iptables_test_SOURCES = src/log.c src/iptables.c tools/iptables-test.c -tools_iptables_test_LDADD = @GLIB_LIBS@ @XTABLES_LIBS@ -ldl - tools_private_network_test_LDADD = @GLIB_LIBS@ @DBUS_LIBS@ tools_session_test_SOURCES = src/log.c src/dbus.c src/error.c \ @@ -360,17 +380,26 @@ tools_session_test_SOURCES = src/log.c src/dbus.c src/error.c \ tools_session_test_LDADD = gdbus/libgdbus-internal.la \ @GLIB_LIBS@ @DBUS_LIBS@ -ldl +if XTABLES +noinst_PROGRAMS += tools/iptables-test tools/iptables-unit + +tools_iptables_test_SOURCES = $(backtrace_sources) src/log.c src/iptables.c \ + tools/iptables-test.c +tools_iptables_test_LDADD = @GLIB_LIBS@ @XTABLES_LIBS@ -ldl + tools_iptables_unit_CFLAGS = @DBUS_CFLAGS@ @GLIB_CFLAGS@ @XTABLES_CFLAGS@ \ -DIPTABLES_SAVE=\""${IPTABLES_SAVE}"\" tools_iptables_unit_SOURCES = src/log.c \ - src/iptables.c src/firewall.c src/nat.c tools/iptables-unit.c + src/iptables.c src/firewall-iptables.c src/nat.c \ + tools/iptables-unit.c tools_iptables_unit_LDADD = gdbus/libgdbus-internal.la \ @GLIB_LIBS@ @DBUS_LIBS@ @XTABLES_LIBS@ -ldl +endif tools_dnsproxy_test_SOURCES = tools/dnsproxy-test.c tools_dnsproxy_test_LDADD = @GLIB_LIBS@ -tools_netlink_test_SOURCES =$(shared_sources) tools/netlink-test.c +tools_netlink_test_SOURCES = $(shared_sources) tools/netlink-test.c tools_netlink_test_LDADD = @GLIB_LIBS@ endif @@ -412,14 +441,22 @@ EXTRA_DIST += doc/overview-api.txt doc/behavior-api.txt \ doc/vpn-config-format.txt \ doc/vpn-connection-api.txt \ doc/vpn-manager-api.txt doc/vpn-overview.txt \ - doc/session-policy-format.txt + doc/session-policy-format.txt \ + doc/connmanctl.1.in doc/connman.conf.5.in \ + doc/connman-service.config.5.in \ + doc/connman-vpn.conf.5.in \ + doc/connman-vpn-provider.config.5.in \ + doc/connman.8.in doc/connman-vpn.8.in EXTRA_DIST += src/main.conf \ src/eduroam.config -#MANUAL_PAGES += doc/connman.8 doc/connman.conf.5 +#MANUAL_PAGES += doc/connmanctl.1 doc/connman.conf.5 \ +# doc/connman-service.config.5 doc/connman-vpn.conf.5 \ +# doc/connman-vpn-provider.config.5 \ +# doc/connman.8 doc/connman-vpn.8 -dist_man_MANS = $(MANUAL_PAGES) +nodist_man_MANS = $(MANUAL_PAGES) pkgconfigdir = $(libdir)/pkgconfig @@ -443,9 +480,11 @@ MAINTAINERCLEANFILES = Makefile.in \ src/builtin.h: src/genbuiltin $(builtin_sources) + $(AM_V_at)$(MKDIR_P) $(dir $@) $(AM_V_GEN)$(srcdir)/src/genbuiltin $(builtin_modules) > $@ vpn/builtin.h: src/genbuiltin $(builtin_vpn_sources) + $(AM_V_at)$(MKDIR_P) $(dir $@) $(AM_V_GEN)$(srcdir)/src/genbuiltin $(builtin_vpn_modules) > $@ src/connman.conf: src/connman-dbus.conf src/connman-polkit.conf @@ -462,6 +501,7 @@ if POLKIT else $(AM_V_GEN)cp $(srcdir)/vpn/vpn-dbus.conf $@ endif +CLEANFILES += vpn/connman-vpn-dbus.conf endif if SELINUX @@ -479,12 +519,29 @@ EXTRA_DIST += vpn/connman-task.te do_subst = $(AM_V_GEN)$(SED) \ -e 's,[@]prefix[@],$(prefix),g' \ -e 's,[@]sbindir[@],$(sbindir),g' \ - -e 's,[@]sysconfdir[@],$(sysconfdir),g' + -e 's,[@]sysconfdir[@],$(sysconfdir),g' \ + -e 's,[@]storagedir[@],$(storagedir),g' \ + -e 's,[@]vpn_storagedir[@],$(vpn_storagedir),g' \ + -e 's,[@]localstatedir[@],$(localstatedir),g' + +%.1 : %.1.in + $(AM_V_at)$(MKDIR_P) $(dir $@) + $(do_subst) < $< > $@ + +%.5 : %.5.in + $(AM_V_at)$(MKDIR_P) $(dir $@) + $(do_subst) < $< > $@ + +%.8 : %.8.in + $(AM_V_at)$(MKDIR_P) $(dir $@) + $(do_subst) < $< > $@ %.service: %.service.in Makefile + $(AM_V_at)$(MKDIR_P) $(dir $@) $(do_subst) < $< > $@ scripts/connman: scripts/connman.in Makefile + $(AM_V_at)$(MKDIR_P) $(dir $@) $(do_subst) < $< > $@ include/connman/version.h: include/version.h @@ -496,4 +553,4 @@ include/connman/%.h: $(abs_top_srcdir)/include/%.h $(AM_V_GEN)$(LN_S) $< $@ clean-local: - @$(RM) -rf include/connman + @$(RM) -rf include/connman $(MANUAL_PAGES) diff --git a/Makefile.in b/Makefile.in deleted file mode 100644 index c625154c..00000000 --- a/Makefile.in +++ /dev/null @@ -1,5186 +0,0 @@ -# Makefile.in generated by automake 1.11.6 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. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - - - - - -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@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@WISPR_TRUE@am__append_1 = gweb/giognutls.h gweb/giognutls.c -@WISPR_FALSE@am__append_2 = gweb/giognutls.h gweb/gionotls.c -@DATAFILES_TRUE@@VPN_TRUE@am__append_3 = vpn/connman-vpn-dbus.conf -@DATAFILES_TRUE@@SYSTEMD_TRUE@@VPN_TRUE@am__append_4 = vpn/connman-vpn.service -noinst_PROGRAMS = unit/test-ippool$(EXEEXT) $(am__EXEEXT_2) \ - $(am__EXEEXT_3) -bin_PROGRAMS = $(am__EXEEXT_1) -sbin_PROGRAMS = src/connmand$(EXEEXT) $(am__EXEEXT_4) -@VPN_TRUE@am__append_5 = vpn/connman-vpnd -@VPN_TRUE@am__append_6 = vpn/builtin.h -script_PROGRAMS = $(am__EXEEXT_5) $(am__EXEEXT_6) $(am__EXEEXT_7) -DIST_COMMON = README $(am__configure_deps) $(dist_man_MANS) \ - $(include_HEADERS) $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(srcdir)/Makefile.plugins \ - $(srcdir)/config.h.in $(srcdir)/connman.pc.in \ - $(top_srcdir)/configure $(top_srcdir)/include/version.h.in \ - AUTHORS COPYING ChangeLog INSTALL NEWS TODO compile \ - config.guess config.sub depcomp install-sh ltmain.sh missing -@LOOPBACK_TRUE@am__append_7 = loopback -@LOOPBACK_TRUE@am__append_8 = plugins/loopback.c -@ETHERNET_TRUE@am__append_9 = ethernet -@ETHERNET_TRUE@am__append_10 = plugins/ethernet.c -@GADGET_TRUE@am__append_11 = gadget -@GADGET_TRUE@am__append_12 = plugins/gadget.c -@WIFI_TRUE@am__append_13 = wifi -@WIFI_TRUE@am__append_14 = plugins/wifi.c $(gsupplicant_sources) -@BLUETOOTH_TRUE@am__append_15 = bluetooth_legacy bluetooth -@BLUETOOTH_TRUE@am__append_16 = plugins/bluetooth_legacy.c \ -@BLUETOOTH_TRUE@ plugins/bluetooth.c -@HH2SERIAL_GPS_BUILTIN_TRUE@@HH2SERIAL_GPS_TRUE@am__append_17 = hh2serial_gps -@HH2SERIAL_GPS_BUILTIN_TRUE@@HH2SERIAL_GPS_TRUE@am__append_18 = plugins/hh2serial-gps.c -@HH2SERIAL_GPS_BUILTIN_FALSE@@HH2SERIAL_GPS_TRUE@am__append_19 = plugins/hh2serial-gps.la -@HH2SERIAL_GPS_BUILTIN_FALSE@@HH2SERIAL_GPS_TRUE@am__append_20 = $(plugins_hh2serial_gps_la_OBJECTS) -@OFONO_TRUE@am__append_21 = ofono -@OFONO_TRUE@am__append_22 = plugins/mcc.h plugins/ofono.c -@DUNDEE_TRUE@am__append_23 = dundee -@DUNDEE_TRUE@am__append_24 = plugins/dundee.c -@VPN_TRUE@am__append_25 = vpn -@VPN_TRUE@am__append_26 = plugins/vpn.c -@OPENCONNECT_BUILTIN_TRUE@@OPENCONNECT_TRUE@@VPN_TRUE@am__append_27 = openconnect -@OPENCONNECT_BUILTIN_TRUE@@OPENCONNECT_TRUE@@VPN_TRUE@am__append_28 = vpn/plugins/openconnect.c -@OPENCONNECT_BUILTIN_TRUE@@OPENCONNECT_TRUE@@VPN_TRUE@am__append_29 = -DOPENCONNECT=\"@OPENCONNECT@\" -@OPENCONNECT_BUILTIN_FALSE@@OPENCONNECT_TRUE@@VPN_TRUE@am__append_30 = vpn/plugins/openconnect.la -@OPENCONNECT_BUILTIN_FALSE@@OPENCONNECT_TRUE@@VPN_TRUE@am__append_31 = $(plugins_openconnect_la_OBJECTS) -@OPENVPN_BUILTIN_TRUE@@OPENVPN_TRUE@@VPN_TRUE@am__append_32 = openvpn -@OPENVPN_BUILTIN_TRUE@@OPENVPN_TRUE@@VPN_TRUE@am__append_33 = vpn/plugins/openvpn.c -@OPENVPN_BUILTIN_TRUE@@OPENVPN_TRUE@@VPN_TRUE@am__append_34 = -DOPENVPN=\"@OPENVPN@\" -@OPENVPN_BUILTIN_FALSE@@OPENVPN_TRUE@@VPN_TRUE@am__append_35 = vpn/plugins/openvpn.la -@OPENVPN_BUILTIN_FALSE@@OPENVPN_TRUE@@VPN_TRUE@am__append_36 = $(plugins_openvpn_la_OBJECTS) -@VPNC_BUILTIN_TRUE@@VPNC_TRUE@@VPN_TRUE@am__append_37 = vpnc -@VPNC_BUILTIN_TRUE@@VPNC_TRUE@@VPN_TRUE@am__append_38 = vpn/plugins/vpnc.c -@VPNC_BUILTIN_TRUE@@VPNC_TRUE@@VPN_TRUE@am__append_39 = -DVPNC=\"@VPNC@\" -@VPNC_BUILTIN_FALSE@@VPNC_TRUE@@VPN_TRUE@am__append_40 = vpn/plugins/vpnc.la -@VPNC_BUILTIN_FALSE@@VPNC_TRUE@@VPN_TRUE@am__append_41 = $(plugins_vpnc_la_OBJECTS) -@L2TP_BUILTIN_TRUE@@L2TP_TRUE@@VPN_TRUE@am__append_42 = l2tp -@L2TP_BUILTIN_TRUE@@L2TP_TRUE@@VPN_TRUE@am__append_43 = vpn/plugins/l2tp.c -@L2TP_BUILTIN_TRUE@@L2TP_TRUE@@VPN_TRUE@am__append_44 = -DL2TP=\"@L2TP@\" -@L2TP_BUILTIN_FALSE@@L2TP_TRUE@@VPN_TRUE@am__append_45 = vpn/plugins/l2tp.la -@L2TP_BUILTIN_FALSE@@L2TP_TRUE@@VPN_TRUE@am__append_46 = $(plugins_l2tp_la_OBJECTS) -@PPTP_BUILTIN_TRUE@@PPTP_TRUE@@VPN_TRUE@am__append_47 = pptp -@PPTP_BUILTIN_TRUE@@PPTP_TRUE@@VPN_TRUE@am__append_48 = vpn/plugins/pptp.c -@PPTP_BUILTIN_TRUE@@PPTP_TRUE@@VPN_TRUE@am__append_49 = -DPPPD=\"@PPPD@\" -DPPTP=\"@PPTP@\" -@PPTP_BUILTIN_FALSE@@PPTP_TRUE@@VPN_TRUE@am__append_50 = vpn/plugins/pptp.la -@PPTP_BUILTIN_FALSE@@PPTP_TRUE@@VPN_TRUE@am__append_51 = $(plugins_pptp_la_OBJECTS) -@PPTP_TRUE@@VPN_TRUE@am__append_52 = scripts/libppp-plugin.la -@L2TP_TRUE@@PPTP_FALSE@@VPN_TRUE@am__append_53 = scripts/libppp-plugin.la -@PACRUNNER_TRUE@am__append_54 = pacrunner -@PACRUNNER_TRUE@am__append_55 = plugins/pacrunner.c -@POLKIT_TRUE@am__append_56 = polkit -@POLKIT_TRUE@am__append_57 = plugins/polkit.c -@DATAFILES_TRUE@@POLKIT_TRUE@@VPN_TRUE@am__append_58 = vpn/net.connman.vpn.policy -@IOSPM_TRUE@am__append_59 = plugins/iospm.la -@IOSPM_TRUE@am__append_60 = $(plugins_iospm_la_OBJECTS) -@OPENCONNECT_TRUE@am__append_61 = scripts/openconnect-script -@OPENCONNECT_FALSE@@VPNC_TRUE@am__append_62 = scripts/openconnect-script -@OPENVPN_TRUE@am__append_63 = scripts/openvpn-script -@NMCOMPAT_TRUE@am__append_64 = nmcompat -@NMCOMPAT_TRUE@am__append_65 = plugins/nmcompat.c -@TIST_BUILTIN_TRUE@@TIST_TRUE@am__append_66 = tist -@TIST_BUILTIN_TRUE@@TIST_TRUE@am__append_67 = plugins/tist.c -@TIST_BUILTIN_FALSE@@TIST_TRUE@am__append_68 = plugins/tist.la -@TIST_BUILTIN_FALSE@@TIST_TRUE@am__append_69 = $(plugins_tist_la_OBJECTS) -@SESSION_POLICY_LOCAL_BUILTIN_TRUE@@SESSION_POLICY_LOCAL_TRUE@am__append_70 = session_policy_local -@SESSION_POLICY_LOCAL_BUILTIN_TRUE@@SESSION_POLICY_LOCAL_TRUE@am__append_71 = plugins/session_policy_local.c -@SESSION_POLICY_LOCAL_BUILTIN_FALSE@@SESSION_POLICY_LOCAL_TRUE@am__append_72 = plugins/session_policy_local.la -@SESSION_POLICY_LOCAL_BUILTIN_FALSE@@SESSION_POLICY_LOCAL_TRUE@am__append_73 = $(plugins_session_policy_local_la_OBJECTS) -@NEARD_TRUE@am__append_74 = neard -@NEARD_TRUE@am__append_75 = plugins/neard.c -@CLIENT_TRUE@am__append_76 = client/connmanctl -@CLIENT_TRUE@am__append_77 = doc/connmanctl.1 -TESTS = unit/test-ippool$(EXEEXT) -@WISPR_TRUE@am__append_78 = tools/wispr -@TOOLS_TRUE@am__append_79 = tools/supplicant-test \ -@TOOLS_TRUE@ tools/dhcp-test tools/dhcp-server-test \ -@TOOLS_TRUE@ tools/addr-test tools/web-test tools/resolv-test \ -@TOOLS_TRUE@ tools/dbus-test tools/polkit-test \ -@TOOLS_TRUE@ tools/iptables-test tools/tap-test tools/wpad-test \ -@TOOLS_TRUE@ tools/stats-tool tools/private-network-test \ -@TOOLS_TRUE@ tools/session-test tools/iptables-unit \ -@TOOLS_TRUE@ tools/dnsproxy-test tools/netlink-test - -@SELINUX_TRUE@@VPN_TRUE@am__append_80 = connman-task.pp -@SELINUX_TRUE@@VPN_TRUE@am__append_81 = connman-task.pp -subdir = . -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ - configure.lineno config.status.lineno -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = include/version.h connman.pc -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__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; }; \ - } -am__installdirs = "$(DESTDIR)$(plugindir)" "$(DESTDIR)$(scriptdir)" \ - "$(DESTDIR)$(vpn_plugindir)" "$(DESTDIR)$(bindir)" \ - "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(scriptdir)" \ - "$(DESTDIR)$(testdir)" "$(DESTDIR)$(man1dir)" \ - "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)" \ - "$(DESTDIR)$(dbusconfdir)" "$(DESTDIR)$(dbusservicedir)" \ - "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(policydir)" \ - "$(DESTDIR)$(scriptdir)" "$(DESTDIR)$(systemdunitdir)" \ - "$(DESTDIR)$(includedir)" "$(DESTDIR)$(includedir)" -LTLIBRARIES = $(noinst_LTLIBRARIES) $(plugin_LTLIBRARIES) \ - $(script_LTLIBRARIES) $(vpn_plugin_LTLIBRARIES) -gdbus_libgdbus_internal_la_LIBADD = -am__dirstamp = $(am__leading_dot)dirstamp -am_gdbus_libgdbus_internal_la_OBJECTS = gdbus/mainloop.lo \ - gdbus/watch.lo gdbus/object.lo gdbus/client.lo gdbus/polkit.lo -gdbus_libgdbus_internal_la_OBJECTS = \ - $(am_gdbus_libgdbus_internal_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -plugins_hh2serial_gps_la_LIBADD = -plugins_hh2serial_gps_la_SOURCES = plugins/hh2serial-gps.c -plugins_hh2serial_gps_la_OBJECTS = \ - plugins/plugins_hh2serial_gps_la-hh2serial-gps.lo -plugins_hh2serial_gps_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(plugins_hh2serial_gps_la_CFLAGS) $(CFLAGS) \ - $(plugins_hh2serial_gps_la_LDFLAGS) $(LDFLAGS) -o $@ -@HH2SERIAL_GPS_BUILTIN_FALSE@@HH2SERIAL_GPS_TRUE@am_plugins_hh2serial_gps_la_rpath = \ -@HH2SERIAL_GPS_BUILTIN_FALSE@@HH2SERIAL_GPS_TRUE@ -rpath \ -@HH2SERIAL_GPS_BUILTIN_FALSE@@HH2SERIAL_GPS_TRUE@ $(plugindir) -plugins_iospm_la_LIBADD = -plugins_iospm_la_SOURCES = plugins/iospm.c -plugins_iospm_la_OBJECTS = plugins/plugins_iospm_la-iospm.lo -plugins_iospm_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(plugins_iospm_la_CFLAGS) $(CFLAGS) \ - $(plugins_iospm_la_LDFLAGS) $(LDFLAGS) -o $@ -@IOSPM_TRUE@am_plugins_iospm_la_rpath = -rpath $(plugindir) -plugins_session_policy_local_la_LIBADD = -plugins_session_policy_local_la_SOURCES = \ - plugins/session_policy_local.c -plugins_session_policy_local_la_OBJECTS = plugins/plugins_session_policy_local_la-session_policy_local.lo -plugins_session_policy_local_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(plugins_session_policy_local_la_CFLAGS) $(CFLAGS) \ - $(plugins_session_policy_local_la_LDFLAGS) $(LDFLAGS) -o $@ -@SESSION_POLICY_LOCAL_BUILTIN_FALSE@@SESSION_POLICY_LOCAL_TRUE@am_plugins_session_policy_local_la_rpath = -rpath \ -@SESSION_POLICY_LOCAL_BUILTIN_FALSE@@SESSION_POLICY_LOCAL_TRUE@ $(plugindir) -plugins_tist_la_LIBADD = -plugins_tist_la_SOURCES = plugins/tist.c -plugins_tist_la_OBJECTS = plugins/plugins_tist_la-tist.lo -plugins_tist_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(plugins_tist_la_CFLAGS) $(CFLAGS) $(plugins_tist_la_LDFLAGS) \ - $(LDFLAGS) -o $@ -@TIST_BUILTIN_FALSE@@TIST_TRUE@am_plugins_tist_la_rpath = -rpath \ -@TIST_BUILTIN_FALSE@@TIST_TRUE@ $(plugindir) -scripts_libppp_plugin_la_DEPENDENCIES = -scripts_libppp_plugin_la_SOURCES = scripts/libppp-plugin.c -scripts_libppp_plugin_la_OBJECTS = scripts/libppp-plugin.lo -scripts_libppp_plugin_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(AM_CFLAGS) $(CFLAGS) $(scripts_libppp_plugin_la_LDFLAGS) \ - $(LDFLAGS) -o $@ -@L2TP_TRUE@@PPTP_FALSE@@VPN_TRUE@am_scripts_libppp_plugin_la_rpath = \ -@L2TP_TRUE@@PPTP_FALSE@@VPN_TRUE@ -rpath $(scriptdir) -@PPTP_TRUE@@VPN_TRUE@am_scripts_libppp_plugin_la_rpath = -rpath \ -@PPTP_TRUE@@VPN_TRUE@ $(scriptdir) -vpn_plugins_l2tp_la_LIBADD = -am__vpn_plugins_l2tp_la_SOURCES_DIST = vpn/plugins/vpn.h \ - vpn/plugins/vpn.c vpn/plugins/l2tp.c -@L2TP_BUILTIN_FALSE@@L2TP_TRUE@@VPN_TRUE@am_vpn_plugins_l2tp_la_OBJECTS = vpn/plugins/vpn_plugins_l2tp_la-vpn.lo \ -@L2TP_BUILTIN_FALSE@@L2TP_TRUE@@VPN_TRUE@ vpn/plugins/vpn_plugins_l2tp_la-l2tp.lo -vpn_plugins_l2tp_la_OBJECTS = $(am_vpn_plugins_l2tp_la_OBJECTS) -vpn_plugins_l2tp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(vpn_plugins_l2tp_la_CFLAGS) $(CFLAGS) \ - $(vpn_plugins_l2tp_la_LDFLAGS) $(LDFLAGS) -o $@ -@L2TP_BUILTIN_FALSE@@L2TP_TRUE@@VPN_TRUE@am_vpn_plugins_l2tp_la_rpath = \ -@L2TP_BUILTIN_FALSE@@L2TP_TRUE@@VPN_TRUE@ -rpath \ -@L2TP_BUILTIN_FALSE@@L2TP_TRUE@@VPN_TRUE@ $(vpn_plugindir) -vpn_plugins_openconnect_la_LIBADD = -am__vpn_plugins_openconnect_la_SOURCES_DIST = vpn/plugins/vpn.h \ - vpn/plugins/vpn.c vpn/plugins/openconnect.c -@OPENCONNECT_BUILTIN_FALSE@@OPENCONNECT_TRUE@@VPN_TRUE@am_vpn_plugins_openconnect_la_OBJECTS = vpn/plugins/vpn_plugins_openconnect_la-vpn.lo \ -@OPENCONNECT_BUILTIN_FALSE@@OPENCONNECT_TRUE@@VPN_TRUE@ vpn/plugins/vpn_plugins_openconnect_la-openconnect.lo -vpn_plugins_openconnect_la_OBJECTS = \ - $(am_vpn_plugins_openconnect_la_OBJECTS) -vpn_plugins_openconnect_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(vpn_plugins_openconnect_la_CFLAGS) $(CFLAGS) \ - $(vpn_plugins_openconnect_la_LDFLAGS) $(LDFLAGS) -o $@ -@OPENCONNECT_BUILTIN_FALSE@@OPENCONNECT_TRUE@@VPN_TRUE@am_vpn_plugins_openconnect_la_rpath = \ -@OPENCONNECT_BUILTIN_FALSE@@OPENCONNECT_TRUE@@VPN_TRUE@ -rpath \ -@OPENCONNECT_BUILTIN_FALSE@@OPENCONNECT_TRUE@@VPN_TRUE@ $(vpn_plugindir) -vpn_plugins_openvpn_la_LIBADD = -am__vpn_plugins_openvpn_la_SOURCES_DIST = vpn/plugins/vpn.h \ - vpn/plugins/vpn.c vpn/plugins/openvpn.c -@OPENVPN_BUILTIN_FALSE@@OPENVPN_TRUE@@VPN_TRUE@am_vpn_plugins_openvpn_la_OBJECTS = vpn/plugins/vpn_plugins_openvpn_la-vpn.lo \ -@OPENVPN_BUILTIN_FALSE@@OPENVPN_TRUE@@VPN_TRUE@ vpn/plugins/vpn_plugins_openvpn_la-openvpn.lo -vpn_plugins_openvpn_la_OBJECTS = $(am_vpn_plugins_openvpn_la_OBJECTS) -vpn_plugins_openvpn_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(vpn_plugins_openvpn_la_CFLAGS) $(CFLAGS) \ - $(vpn_plugins_openvpn_la_LDFLAGS) $(LDFLAGS) -o $@ -@OPENVPN_BUILTIN_FALSE@@OPENVPN_TRUE@@VPN_TRUE@am_vpn_plugins_openvpn_la_rpath = \ -@OPENVPN_BUILTIN_FALSE@@OPENVPN_TRUE@@VPN_TRUE@ -rpath \ -@OPENVPN_BUILTIN_FALSE@@OPENVPN_TRUE@@VPN_TRUE@ $(vpn_plugindir) -vpn_plugins_pptp_la_LIBADD = -am__vpn_plugins_pptp_la_SOURCES_DIST = vpn/plugins/vpn.h \ - vpn/plugins/vpn.c vpn/plugins/pptp.c -@PPTP_BUILTIN_FALSE@@PPTP_TRUE@@VPN_TRUE@am_vpn_plugins_pptp_la_OBJECTS = vpn/plugins/vpn_plugins_pptp_la-vpn.lo \ -@PPTP_BUILTIN_FALSE@@PPTP_TRUE@@VPN_TRUE@ vpn/plugins/vpn_plugins_pptp_la-pptp.lo -vpn_plugins_pptp_la_OBJECTS = $(am_vpn_plugins_pptp_la_OBJECTS) -vpn_plugins_pptp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(vpn_plugins_pptp_la_CFLAGS) $(CFLAGS) \ - $(vpn_plugins_pptp_la_LDFLAGS) $(LDFLAGS) -o $@ -@PPTP_BUILTIN_FALSE@@PPTP_TRUE@@VPN_TRUE@am_vpn_plugins_pptp_la_rpath = \ -@PPTP_BUILTIN_FALSE@@PPTP_TRUE@@VPN_TRUE@ -rpath \ -@PPTP_BUILTIN_FALSE@@PPTP_TRUE@@VPN_TRUE@ $(vpn_plugindir) -vpn_plugins_vpnc_la_LIBADD = -am__vpn_plugins_vpnc_la_SOURCES_DIST = vpn/plugins/vpn.h \ - vpn/plugins/vpn.c vpn/plugins/vpnc.c -@VPNC_BUILTIN_FALSE@@VPNC_TRUE@@VPN_TRUE@am_vpn_plugins_vpnc_la_OBJECTS = vpn/plugins/vpn_plugins_vpnc_la-vpn.lo \ -@VPNC_BUILTIN_FALSE@@VPNC_TRUE@@VPN_TRUE@ vpn/plugins/vpn_plugins_vpnc_la-vpnc.lo -vpn_plugins_vpnc_la_OBJECTS = $(am_vpn_plugins_vpnc_la_OBJECTS) -vpn_plugins_vpnc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(vpn_plugins_vpnc_la_CFLAGS) $(CFLAGS) \ - $(vpn_plugins_vpnc_la_LDFLAGS) $(LDFLAGS) -o $@ -@VPNC_BUILTIN_FALSE@@VPNC_TRUE@@VPN_TRUE@am_vpn_plugins_vpnc_la_rpath = \ -@VPNC_BUILTIN_FALSE@@VPNC_TRUE@@VPN_TRUE@ -rpath \ -@VPNC_BUILTIN_FALSE@@VPNC_TRUE@@VPN_TRUE@ $(vpn_plugindir) -@CLIENT_TRUE@am__EXEEXT_1 = client/connmanctl$(EXEEXT) -@WISPR_TRUE@am__EXEEXT_2 = tools/wispr$(EXEEXT) -@TOOLS_TRUE@am__EXEEXT_3 = tools/supplicant-test$(EXEEXT) \ -@TOOLS_TRUE@ tools/dhcp-test$(EXEEXT) \ -@TOOLS_TRUE@ tools/dhcp-server-test$(EXEEXT) \ -@TOOLS_TRUE@ tools/addr-test$(EXEEXT) tools/web-test$(EXEEXT) \ -@TOOLS_TRUE@ tools/resolv-test$(EXEEXT) \ -@TOOLS_TRUE@ tools/dbus-test$(EXEEXT) \ -@TOOLS_TRUE@ tools/polkit-test$(EXEEXT) \ -@TOOLS_TRUE@ tools/iptables-test$(EXEEXT) \ -@TOOLS_TRUE@ tools/tap-test$(EXEEXT) tools/wpad-test$(EXEEXT) \ -@TOOLS_TRUE@ tools/stats-tool$(EXEEXT) \ -@TOOLS_TRUE@ tools/private-network-test$(EXEEXT) \ -@TOOLS_TRUE@ tools/session-test$(EXEEXT) \ -@TOOLS_TRUE@ tools/iptables-unit$(EXEEXT) \ -@TOOLS_TRUE@ tools/dnsproxy-test$(EXEEXT) \ -@TOOLS_TRUE@ tools/netlink-test$(EXEEXT) -@VPN_TRUE@am__EXEEXT_4 = vpn/connman-vpnd$(EXEEXT) -@OPENCONNECT_TRUE@am__EXEEXT_5 = scripts/openconnect-script$(EXEEXT) -@OPENCONNECT_FALSE@@VPNC_TRUE@am__EXEEXT_6 = scripts/openconnect-script$(EXEEXT) -@OPENVPN_TRUE@am__EXEEXT_7 = scripts/openvpn-script$(EXEEXT) -PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) $(sbin_PROGRAMS) \ - $(script_PROGRAMS) -am__client_connmanctl_SOURCES_DIST = client/dbus_helpers.h \ - client/dbus_helpers.c client/services.h client/services.c \ - client/commands.h client/commands.c client/input.h \ - client/input.c client/agent.h client/agent.c client/peers.h \ - client/peers.c client/vpnconnections.h client/vpnconnections.c \ - client/main.c -@CLIENT_TRUE@am_client_connmanctl_OBJECTS = \ -@CLIENT_TRUE@ client/dbus_helpers.$(OBJEXT) \ -@CLIENT_TRUE@ client/services.$(OBJEXT) \ -@CLIENT_TRUE@ client/commands.$(OBJEXT) client/input.$(OBJEXT) \ -@CLIENT_TRUE@ client/agent.$(OBJEXT) client/peers.$(OBJEXT) \ -@CLIENT_TRUE@ client/vpnconnections.$(OBJEXT) \ -@CLIENT_TRUE@ client/main.$(OBJEXT) -client_connmanctl_OBJECTS = $(am_client_connmanctl_OBJECTS) -@CLIENT_TRUE@client_connmanctl_DEPENDENCIES = \ -@CLIENT_TRUE@ gdbus/libgdbus-internal.la -scripts_openconnect_script_SOURCES = scripts/openconnect-script.c -scripts_openconnect_script_OBJECTS = \ - scripts/openconnect-script.$(OBJEXT) -scripts_openconnect_script_DEPENDENCIES = -scripts_openvpn_script_SOURCES = scripts/openvpn-script.c -scripts_openvpn_script_OBJECTS = scripts/openvpn-script.$(OBJEXT) -scripts_openvpn_script_DEPENDENCIES = -am__src_connmand_SOURCES_DIST = gdhcp/gdhcp.h gdhcp/common.h \ - gdhcp/common.c gdhcp/client.c gdhcp/server.c gdhcp/ipv4ll.h \ - gdhcp/ipv4ll.c gdhcp/unaligned.h gweb/gweb.h gweb/gweb.c \ - gweb/gresolv.h gweb/gresolv.c gweb/giognutls.h \ - gweb/giognutls.c gweb/gionotls.c plugins/loopback.c \ - plugins/ethernet.c plugins/gadget.c plugins/wifi.c \ - gsupplicant/gsupplicant.h gsupplicant/dbus.h \ - gsupplicant/supplicant.c gsupplicant/dbus.c \ - plugins/bluetooth_legacy.c plugins/bluetooth.c \ - plugins/hh2serial-gps.c plugins/mcc.h plugins/ofono.c \ - plugins/dundee.c plugins/vpn.c plugins/pacrunner.c \ - plugins/polkit.c plugins/nmcompat.c plugins/tist.c \ - plugins/session_policy_local.c plugins/neard.c \ - src/shared/util.h src/shared/util.c src/shared/netlink.h \ - src/shared/netlink.c src/connman.ver src/main.c src/connman.h \ - src/log.c src/error.c src/plugin.c src/task.c src/device.c \ - src/network.c src/connection.c src/manager.c src/service.c \ - src/clock.c src/timezone.c src/agent-connman.c src/agent.c \ - src/notifier.c src/provider.c src/resolver.c src/ipconfig.c \ - src/detect.c src/inet.c src/dhcp.c src/dhcpv6.c src/rtnl.c \ - src/proxy.c src/utsname.c src/timeserver.c src/rfkill.c \ - src/storage.c src/dbus.c src/config.c src/technology.c \ - src/counter.c src/ntp.c src/session.c src/tethering.c \ - src/wpad.c src/wispr.c src/stats.c src/iptables.c \ - src/dnsproxy.c src/6to4.c src/ippool.c src/bridge.c src/nat.c \ - src/ipaddress.c src/inotify.c src/firewall.c src/ipv6pd.c \ - src/peer.c src/peer_service.c src/machine.c src/util.c -am__objects_1 = gdhcp/src_connmand-common.$(OBJEXT) \ - gdhcp/src_connmand-client.$(OBJEXT) \ - gdhcp/src_connmand-server.$(OBJEXT) \ - gdhcp/src_connmand-ipv4ll.$(OBJEXT) -@WISPR_TRUE@am__objects_2 = gweb/src_connmand-giognutls.$(OBJEXT) -@WISPR_FALSE@am__objects_3 = gweb/src_connmand-gionotls.$(OBJEXT) -am__objects_4 = gweb/src_connmand-gweb.$(OBJEXT) \ - gweb/src_connmand-gresolv.$(OBJEXT) $(am__objects_2) \ - $(am__objects_3) -@LOOPBACK_TRUE@am__objects_5 = \ -@LOOPBACK_TRUE@ plugins/src_connmand-loopback.$(OBJEXT) -@ETHERNET_TRUE@am__objects_6 = \ -@ETHERNET_TRUE@ plugins/src_connmand-ethernet.$(OBJEXT) -@GADGET_TRUE@am__objects_7 = plugins/src_connmand-gadget.$(OBJEXT) -am__objects_8 = gsupplicant/src_connmand-supplicant.$(OBJEXT) \ - gsupplicant/src_connmand-dbus.$(OBJEXT) -@WIFI_TRUE@am__objects_9 = plugins/src_connmand-wifi.$(OBJEXT) \ -@WIFI_TRUE@ $(am__objects_8) -@BLUETOOTH_TRUE@am__objects_10 = plugins/src_connmand-bluetooth_legacy.$(OBJEXT) \ -@BLUETOOTH_TRUE@ plugins/src_connmand-bluetooth.$(OBJEXT) -@HH2SERIAL_GPS_BUILTIN_TRUE@@HH2SERIAL_GPS_TRUE@am__objects_11 = plugins/src_connmand-hh2serial-gps.$(OBJEXT) -@OFONO_TRUE@am__objects_12 = plugins/src_connmand-ofono.$(OBJEXT) -@DUNDEE_TRUE@am__objects_13 = plugins/src_connmand-dundee.$(OBJEXT) -@VPN_TRUE@am__objects_14 = plugins/src_connmand-vpn.$(OBJEXT) -@PACRUNNER_TRUE@am__objects_15 = \ -@PACRUNNER_TRUE@ plugins/src_connmand-pacrunner.$(OBJEXT) -@POLKIT_TRUE@am__objects_16 = plugins/src_connmand-polkit.$(OBJEXT) -@NMCOMPAT_TRUE@am__objects_17 = \ -@NMCOMPAT_TRUE@ plugins/src_connmand-nmcompat.$(OBJEXT) -@TIST_BUILTIN_TRUE@@TIST_TRUE@am__objects_18 = plugins/src_connmand-tist.$(OBJEXT) -@SESSION_POLICY_LOCAL_BUILTIN_TRUE@@SESSION_POLICY_LOCAL_TRUE@am__objects_19 = plugins/src_connmand-session_policy_local.$(OBJEXT) -@NEARD_TRUE@am__objects_20 = plugins/src_connmand-neard.$(OBJEXT) -am__objects_21 = $(am__objects_5) $(am__objects_6) $(am__objects_7) \ - $(am__objects_9) $(am__objects_10) $(am__objects_11) \ - $(am__objects_12) $(am__objects_13) $(am__objects_14) \ - $(am__objects_15) $(am__objects_16) $(am__objects_17) \ - $(am__objects_18) $(am__objects_19) $(am__objects_20) -am__objects_22 = src/shared/src_connmand-util.$(OBJEXT) \ - src/shared/src_connmand-netlink.$(OBJEXT) -am_src_connmand_OBJECTS = $(am__objects_1) $(am__objects_4) \ - $(am__objects_21) $(am__objects_22) \ - src/src_connmand-main.$(OBJEXT) src/src_connmand-log.$(OBJEXT) \ - src/src_connmand-error.$(OBJEXT) \ - src/src_connmand-plugin.$(OBJEXT) \ - src/src_connmand-task.$(OBJEXT) \ - src/src_connmand-device.$(OBJEXT) \ - src/src_connmand-network.$(OBJEXT) \ - src/src_connmand-connection.$(OBJEXT) \ - src/src_connmand-manager.$(OBJEXT) \ - src/src_connmand-service.$(OBJEXT) \ - src/src_connmand-clock.$(OBJEXT) \ - src/src_connmand-timezone.$(OBJEXT) \ - src/src_connmand-agent-connman.$(OBJEXT) \ - src/src_connmand-agent.$(OBJEXT) \ - src/src_connmand-notifier.$(OBJEXT) \ - src/src_connmand-provider.$(OBJEXT) \ - src/src_connmand-resolver.$(OBJEXT) \ - src/src_connmand-ipconfig.$(OBJEXT) \ - src/src_connmand-detect.$(OBJEXT) \ - src/src_connmand-inet.$(OBJEXT) \ - src/src_connmand-dhcp.$(OBJEXT) \ - src/src_connmand-dhcpv6.$(OBJEXT) \ - src/src_connmand-rtnl.$(OBJEXT) \ - src/src_connmand-proxy.$(OBJEXT) \ - src/src_connmand-utsname.$(OBJEXT) \ - src/src_connmand-timeserver.$(OBJEXT) \ - src/src_connmand-rfkill.$(OBJEXT) \ - src/src_connmand-storage.$(OBJEXT) \ - src/src_connmand-dbus.$(OBJEXT) \ - src/src_connmand-config.$(OBJEXT) \ - src/src_connmand-technology.$(OBJEXT) \ - src/src_connmand-counter.$(OBJEXT) \ - src/src_connmand-ntp.$(OBJEXT) \ - src/src_connmand-session.$(OBJEXT) \ - src/src_connmand-tethering.$(OBJEXT) \ - src/src_connmand-wpad.$(OBJEXT) \ - src/src_connmand-wispr.$(OBJEXT) \ - src/src_connmand-stats.$(OBJEXT) \ - src/src_connmand-iptables.$(OBJEXT) \ - src/src_connmand-dnsproxy.$(OBJEXT) \ - src/src_connmand-6to4.$(OBJEXT) \ - src/src_connmand-ippool.$(OBJEXT) \ - src/src_connmand-bridge.$(OBJEXT) \ - src/src_connmand-nat.$(OBJEXT) \ - src/src_connmand-ipaddress.$(OBJEXT) \ - src/src_connmand-inotify.$(OBJEXT) \ - src/src_connmand-firewall.$(OBJEXT) \ - src/src_connmand-ipv6pd.$(OBJEXT) \ - src/src_connmand-peer.$(OBJEXT) \ - src/src_connmand-peer_service.$(OBJEXT) \ - src/src_connmand-machine.$(OBJEXT) \ - src/src_connmand-util.$(OBJEXT) -src_connmand_OBJECTS = $(am_src_connmand_OBJECTS) -am__DEPENDENCIES_1 = -src_connmand_DEPENDENCIES = gdbus/libgdbus-internal.la \ - $(am__DEPENDENCIES_1) -src_connmand_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(src_connmand_CFLAGS) \ - $(CFLAGS) $(src_connmand_LDFLAGS) $(LDFLAGS) -o $@ -tools_addr_test_SOURCES = tools/addr-test.c -tools_addr_test_OBJECTS = tools/addr-test.$(OBJEXT) -tools_addr_test_LDADD = $(LDADD) -am__tools_dbus_test_SOURCES_DIST = tools/dbus-test.c -@TOOLS_TRUE@am_tools_dbus_test_OBJECTS = tools/dbus-test.$(OBJEXT) -tools_dbus_test_OBJECTS = $(am_tools_dbus_test_OBJECTS) -@TOOLS_TRUE@tools_dbus_test_DEPENDENCIES = gdbus/libgdbus-internal.la -am__tools_dhcp_server_test_SOURCES_DIST = gdhcp/gdhcp.h gdhcp/common.h \ - gdhcp/common.c gdhcp/client.c gdhcp/server.c gdhcp/ipv4ll.h \ - gdhcp/ipv4ll.c gdhcp/unaligned.h tools/dhcp-server-test.c -am__objects_23 = gdhcp/common.$(OBJEXT) gdhcp/client.$(OBJEXT) \ - gdhcp/server.$(OBJEXT) gdhcp/ipv4ll.$(OBJEXT) -@TOOLS_TRUE@am_tools_dhcp_server_test_OBJECTS = $(am__objects_23) \ -@TOOLS_TRUE@ tools/dhcp-server-test.$(OBJEXT) -tools_dhcp_server_test_OBJECTS = $(am_tools_dhcp_server_test_OBJECTS) -tools_dhcp_server_test_DEPENDENCIES = -am__tools_dhcp_test_SOURCES_DIST = gdhcp/gdhcp.h gdhcp/common.h \ - gdhcp/common.c gdhcp/client.c gdhcp/server.c gdhcp/ipv4ll.h \ - gdhcp/ipv4ll.c gdhcp/unaligned.h tools/dhcp-test.c -@TOOLS_TRUE@am_tools_dhcp_test_OBJECTS = $(am__objects_23) \ -@TOOLS_TRUE@ tools/dhcp-test.$(OBJEXT) -tools_dhcp_test_OBJECTS = $(am_tools_dhcp_test_OBJECTS) -tools_dhcp_test_DEPENDENCIES = -am__tools_dnsproxy_test_SOURCES_DIST = tools/dnsproxy-test.c -@TOOLS_TRUE@am_tools_dnsproxy_test_OBJECTS = \ -@TOOLS_TRUE@ tools/dnsproxy-test.$(OBJEXT) -tools_dnsproxy_test_OBJECTS = $(am_tools_dnsproxy_test_OBJECTS) -tools_dnsproxy_test_DEPENDENCIES = -am__tools_iptables_test_SOURCES_DIST = src/log.c src/iptables.c \ - tools/iptables-test.c -@TOOLS_TRUE@am_tools_iptables_test_OBJECTS = src/log.$(OBJEXT) \ -@TOOLS_TRUE@ src/iptables.$(OBJEXT) \ -@TOOLS_TRUE@ tools/iptables-test.$(OBJEXT) -tools_iptables_test_OBJECTS = $(am_tools_iptables_test_OBJECTS) -tools_iptables_test_DEPENDENCIES = -am__tools_iptables_unit_SOURCES_DIST = src/log.c src/iptables.c \ - src/firewall.c src/nat.c tools/iptables-unit.c -@TOOLS_TRUE@am_tools_iptables_unit_OBJECTS = \ -@TOOLS_TRUE@ src/tools_iptables_unit-log.$(OBJEXT) \ -@TOOLS_TRUE@ src/tools_iptables_unit-iptables.$(OBJEXT) \ -@TOOLS_TRUE@ src/tools_iptables_unit-firewall.$(OBJEXT) \ -@TOOLS_TRUE@ src/tools_iptables_unit-nat.$(OBJEXT) \ -@TOOLS_TRUE@ tools/tools_iptables_unit-iptables-unit.$(OBJEXT) -tools_iptables_unit_OBJECTS = $(am_tools_iptables_unit_OBJECTS) -@TOOLS_TRUE@tools_iptables_unit_DEPENDENCIES = \ -@TOOLS_TRUE@ gdbus/libgdbus-internal.la -tools_iptables_unit_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(tools_iptables_unit_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -am__tools_netlink_test_SOURCES_DIST = src/shared/util.h \ - src/shared/util.c src/shared/netlink.h src/shared/netlink.c \ - tools/netlink-test.c -am__objects_24 = src/shared/util.$(OBJEXT) \ - src/shared/netlink.$(OBJEXT) -@TOOLS_TRUE@am_tools_netlink_test_OBJECTS = $(am__objects_24) \ -@TOOLS_TRUE@ tools/netlink-test.$(OBJEXT) -tools_netlink_test_OBJECTS = $(am_tools_netlink_test_OBJECTS) -tools_netlink_test_DEPENDENCIES = -tools_polkit_test_SOURCES = tools/polkit-test.c -tools_polkit_test_OBJECTS = tools/polkit-test.$(OBJEXT) -tools_polkit_test_DEPENDENCIES = -tools_private_network_test_SOURCES = tools/private-network-test.c -tools_private_network_test_OBJECTS = \ - tools/private-network-test.$(OBJEXT) -tools_private_network_test_DEPENDENCIES = -am__tools_resolv_test_SOURCES_DIST = gweb/gresolv.h gweb/gresolv.c \ - tools/resolv-test.c -@TOOLS_TRUE@am_tools_resolv_test_OBJECTS = gweb/gresolv.$(OBJEXT) \ -@TOOLS_TRUE@ tools/resolv-test.$(OBJEXT) -tools_resolv_test_OBJECTS = $(am_tools_resolv_test_OBJECTS) -tools_resolv_test_DEPENDENCIES = -am__tools_session_test_SOURCES_DIST = src/log.c src/dbus.c src/error.c \ - tools/session-test.c tools/session-utils.c tools/manager-api.c \ - tools/session-api.c tools/session-test.h -@TOOLS_TRUE@am_tools_session_test_OBJECTS = src/log.$(OBJEXT) \ -@TOOLS_TRUE@ src/dbus.$(OBJEXT) src/error.$(OBJEXT) \ -@TOOLS_TRUE@ tools/session-test.$(OBJEXT) \ -@TOOLS_TRUE@ tools/session-utils.$(OBJEXT) \ -@TOOLS_TRUE@ tools/manager-api.$(OBJEXT) \ -@TOOLS_TRUE@ tools/session-api.$(OBJEXT) -tools_session_test_OBJECTS = $(am_tools_session_test_OBJECTS) -@TOOLS_TRUE@tools_session_test_DEPENDENCIES = \ -@TOOLS_TRUE@ gdbus/libgdbus-internal.la -tools_stats_tool_SOURCES = tools/stats-tool.c -tools_stats_tool_OBJECTS = tools/stats-tool.$(OBJEXT) -tools_stats_tool_DEPENDENCIES = -am__tools_supplicant_test_SOURCES_DIST = tools/supplicant-test.c \ - tools/supplicant-dbus.h tools/supplicant-dbus.c \ - tools/supplicant.h tools/supplicant.c -@TOOLS_TRUE@am_tools_supplicant_test_OBJECTS = \ -@TOOLS_TRUE@ tools/supplicant-test.$(OBJEXT) \ -@TOOLS_TRUE@ tools/supplicant-dbus.$(OBJEXT) \ -@TOOLS_TRUE@ tools/supplicant.$(OBJEXT) -tools_supplicant_test_OBJECTS = $(am_tools_supplicant_test_OBJECTS) -@TOOLS_TRUE@tools_supplicant_test_DEPENDENCIES = \ -@TOOLS_TRUE@ gdbus/libgdbus-internal.la -tools_tap_test_SOURCES = tools/tap-test.c -tools_tap_test_OBJECTS = tools/tap-test.$(OBJEXT) -tools_tap_test_LDADD = $(LDADD) -am__tools_web_test_SOURCES_DIST = gweb/gweb.h gweb/gweb.c \ - gweb/gresolv.h gweb/gresolv.c gweb/giognutls.h \ - gweb/giognutls.c gweb/gionotls.c tools/web-test.c -@WISPR_TRUE@am__objects_25 = gweb/giognutls.$(OBJEXT) -@WISPR_FALSE@am__objects_26 = gweb/gionotls.$(OBJEXT) -am__objects_27 = gweb/gweb.$(OBJEXT) gweb/gresolv.$(OBJEXT) \ - $(am__objects_25) $(am__objects_26) -@TOOLS_TRUE@am_tools_web_test_OBJECTS = $(am__objects_27) \ -@TOOLS_TRUE@ tools/web-test.$(OBJEXT) -tools_web_test_OBJECTS = $(am_tools_web_test_OBJECTS) -tools_web_test_DEPENDENCIES = -am__tools_wispr_SOURCES_DIST = gweb/gweb.h gweb/gweb.c gweb/gresolv.h \ - gweb/gresolv.c gweb/giognutls.h gweb/giognutls.c \ - gweb/gionotls.c tools/wispr.c -@WISPR_TRUE@am_tools_wispr_OBJECTS = $(am__objects_27) \ -@WISPR_TRUE@ tools/wispr.$(OBJEXT) -tools_wispr_OBJECTS = $(am_tools_wispr_OBJECTS) -tools_wispr_DEPENDENCIES = -am__tools_wpad_test_SOURCES_DIST = gweb/gresolv.h gweb/gresolv.c \ - tools/wpad-test.c -@TOOLS_TRUE@am_tools_wpad_test_OBJECTS = gweb/gresolv.$(OBJEXT) \ -@TOOLS_TRUE@ tools/wpad-test.$(OBJEXT) -tools_wpad_test_OBJECTS = $(am_tools_wpad_test_OBJECTS) -tools_wpad_test_DEPENDENCIES = -am_unit_test_ippool_OBJECTS = src/log.$(OBJEXT) src/dbus.$(OBJEXT) \ - src/error.$(OBJEXT) src/ippool.$(OBJEXT) \ - unit/test-ippool.$(OBJEXT) -unit_test_ippool_OBJECTS = $(am_unit_test_ippool_OBJECTS) -unit_test_ippool_DEPENDENCIES = gdbus/libgdbus-internal.la -am__vpn_connman_vpnd_SOURCES_DIST = vpn/plugins/openconnect.c \ - vpn/plugins/openvpn.c vpn/plugins/vpnc.c vpn/plugins/l2tp.c \ - vpn/plugins/pptp.c vpn/plugins/vpn.c vpn/plugins/vpn.h \ - gweb/gweb.h gweb/gweb.c gweb/gresolv.h gweb/gresolv.c \ - gweb/giognutls.h gweb/giognutls.c gweb/gionotls.c vpn/vpn.ver \ - vpn/main.c vpn/vpn.h src/log.c src/error.c src/plugin.c \ - src/task.c vpn/vpn-manager.c vpn/vpn-provider.c \ - vpn/vpn-provider.h vpn/vpn-rtnl.h vpn/vpn-ipconfig.c \ - src/inet.c vpn/vpn-rtnl.c src/dbus.c src/storage.c \ - src/ipaddress.c src/agent.c vpn/vpn-agent.c vpn/vpn-agent.h \ - src/inotify.c vpn/vpn-config.c -@OPENCONNECT_BUILTIN_TRUE@@OPENCONNECT_TRUE@@VPN_TRUE@am__objects_28 = vpn/plugins/vpn_connman_vpnd-openconnect.$(OBJEXT) -@OPENVPN_BUILTIN_TRUE@@OPENVPN_TRUE@@VPN_TRUE@am__objects_29 = vpn/plugins/vpn_connman_vpnd-openvpn.$(OBJEXT) -@VPNC_BUILTIN_TRUE@@VPNC_TRUE@@VPN_TRUE@am__objects_30 = vpn/plugins/vpn_connman_vpnd-vpnc.$(OBJEXT) -@L2TP_BUILTIN_TRUE@@L2TP_TRUE@@VPN_TRUE@am__objects_31 = vpn/plugins/vpn_connman_vpnd-l2tp.$(OBJEXT) -@PPTP_BUILTIN_TRUE@@PPTP_TRUE@@VPN_TRUE@am__objects_32 = vpn/plugins/vpn_connman_vpnd-pptp.$(OBJEXT) -@L2TP_BUILTIN_FALSE@@OPENCONNECT_BUILTIN_FALSE@@OPENVPN_BUILTIN_FALSE@@PPTP_BUILTIN_FALSE@@VPNC_BUILTIN_TRUE@@VPNC_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_BUILTIN_FALSE@@OPENCONNECT_BUILTIN_FALSE@@OPENVPN_BUILTIN_FALSE@@PPTP_BUILTIN_TRUE@@PPTP_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_BUILTIN_FALSE@@OPENCONNECT_BUILTIN_FALSE@@OPENVPN_BUILTIN_FALSE@@PPTP_FALSE@@VPNC_BUILTIN_TRUE@@VPNC_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_BUILTIN_FALSE@@OPENCONNECT_BUILTIN_FALSE@@OPENVPN_BUILTIN_TRUE@@OPENVPN_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_BUILTIN_FALSE@@OPENCONNECT_BUILTIN_FALSE@@OPENVPN_FALSE@@PPTP_BUILTIN_FALSE@@VPNC_BUILTIN_TRUE@@VPNC_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_BUILTIN_FALSE@@OPENCONNECT_BUILTIN_FALSE@@OPENVPN_FALSE@@PPTP_BUILTIN_TRUE@@PPTP_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_BUILTIN_FALSE@@OPENCONNECT_BUILTIN_FALSE@@OPENVPN_FALSE@@PPTP_FALSE@@VPNC_BUILTIN_TRUE@@VPNC_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_BUILTIN_FALSE@@OPENCONNECT_BUILTIN_TRUE@@OPENCONNECT_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_BUILTIN_FALSE@@OPENCONNECT_FALSE@@OPENVPN_BUILTIN_FALSE@@PPTP_BUILTIN_FALSE@@VPNC_BUILTIN_TRUE@@VPNC_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_BUILTIN_FALSE@@OPENCONNECT_FALSE@@OPENVPN_BUILTIN_FALSE@@PPTP_BUILTIN_TRUE@@PPTP_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_BUILTIN_FALSE@@OPENCONNECT_FALSE@@OPENVPN_BUILTIN_FALSE@@PPTP_FALSE@@VPNC_BUILTIN_TRUE@@VPNC_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_BUILTIN_FALSE@@OPENCONNECT_FALSE@@OPENVPN_BUILTIN_TRUE@@OPENVPN_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_BUILTIN_FALSE@@OPENCONNECT_FALSE@@OPENVPN_FALSE@@PPTP_BUILTIN_FALSE@@VPNC_BUILTIN_TRUE@@VPNC_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_BUILTIN_FALSE@@OPENCONNECT_FALSE@@OPENVPN_FALSE@@PPTP_BUILTIN_TRUE@@PPTP_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_BUILTIN_FALSE@@OPENCONNECT_FALSE@@OPENVPN_FALSE@@PPTP_FALSE@@VPNC_BUILTIN_TRUE@@VPNC_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_BUILTIN_TRUE@@L2TP_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_FALSE@@OPENCONNECT_BUILTIN_FALSE@@OPENVPN_BUILTIN_FALSE@@PPTP_BUILTIN_FALSE@@VPNC_BUILTIN_TRUE@@VPNC_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_FALSE@@OPENCONNECT_BUILTIN_FALSE@@OPENVPN_BUILTIN_FALSE@@PPTP_BUILTIN_TRUE@@PPTP_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_FALSE@@OPENCONNECT_BUILTIN_FALSE@@OPENVPN_BUILTIN_FALSE@@PPTP_FALSE@@VPNC_BUILTIN_TRUE@@VPNC_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_FALSE@@OPENCONNECT_BUILTIN_FALSE@@OPENVPN_BUILTIN_TRUE@@OPENVPN_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_FALSE@@OPENCONNECT_BUILTIN_FALSE@@OPENVPN_FALSE@@PPTP_BUILTIN_FALSE@@VPNC_BUILTIN_TRUE@@VPNC_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_FALSE@@OPENCONNECT_BUILTIN_FALSE@@OPENVPN_FALSE@@PPTP_BUILTIN_TRUE@@PPTP_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_FALSE@@OPENCONNECT_BUILTIN_FALSE@@OPENVPN_FALSE@@PPTP_FALSE@@VPNC_BUILTIN_TRUE@@VPNC_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_FALSE@@OPENCONNECT_BUILTIN_TRUE@@OPENCONNECT_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_FALSE@@OPENCONNECT_FALSE@@OPENVPN_BUILTIN_FALSE@@PPTP_BUILTIN_FALSE@@VPNC_BUILTIN_TRUE@@VPNC_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_FALSE@@OPENCONNECT_FALSE@@OPENVPN_BUILTIN_FALSE@@PPTP_BUILTIN_TRUE@@PPTP_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_FALSE@@OPENCONNECT_FALSE@@OPENVPN_BUILTIN_FALSE@@PPTP_FALSE@@VPNC_BUILTIN_TRUE@@VPNC_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_FALSE@@OPENCONNECT_FALSE@@OPENVPN_BUILTIN_TRUE@@OPENVPN_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_FALSE@@OPENCONNECT_FALSE@@OPENVPN_FALSE@@PPTP_BUILTIN_FALSE@@VPNC_BUILTIN_TRUE@@VPNC_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_FALSE@@OPENCONNECT_FALSE@@OPENVPN_FALSE@@PPTP_BUILTIN_TRUE@@PPTP_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@L2TP_FALSE@@OPENCONNECT_FALSE@@OPENVPN_FALSE@@PPTP_FALSE@@VPNC_BUILTIN_TRUE@@VPNC_TRUE@@VPN_TRUE@am__objects_33 = vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) -@VPN_TRUE@am__objects_34 = $(am__objects_28) $(am__objects_29) \ -@VPN_TRUE@ $(am__objects_30) $(am__objects_31) \ -@VPN_TRUE@ $(am__objects_32) $(am__objects_33) -@WISPR_TRUE@am__objects_35 = \ -@WISPR_TRUE@ gweb/vpn_connman_vpnd-giognutls.$(OBJEXT) -@WISPR_FALSE@am__objects_36 = \ -@WISPR_FALSE@ gweb/vpn_connman_vpnd-gionotls.$(OBJEXT) -am__objects_37 = gweb/vpn_connman_vpnd-gweb.$(OBJEXT) \ - gweb/vpn_connman_vpnd-gresolv.$(OBJEXT) $(am__objects_35) \ - $(am__objects_36) -@VPN_TRUE@am_vpn_connman_vpnd_OBJECTS = $(am__objects_34) \ -@VPN_TRUE@ $(am__objects_37) \ -@VPN_TRUE@ vpn/vpn_connman_vpnd-main.$(OBJEXT) \ -@VPN_TRUE@ src/vpn_connman_vpnd-log.$(OBJEXT) \ -@VPN_TRUE@ src/vpn_connman_vpnd-error.$(OBJEXT) \ -@VPN_TRUE@ src/vpn_connman_vpnd-plugin.$(OBJEXT) \ -@VPN_TRUE@ src/vpn_connman_vpnd-task.$(OBJEXT) \ -@VPN_TRUE@ vpn/vpn_connman_vpnd-vpn-manager.$(OBJEXT) \ -@VPN_TRUE@ vpn/vpn_connman_vpnd-vpn-provider.$(OBJEXT) \ -@VPN_TRUE@ vpn/vpn_connman_vpnd-vpn-ipconfig.$(OBJEXT) \ -@VPN_TRUE@ src/vpn_connman_vpnd-inet.$(OBJEXT) \ -@VPN_TRUE@ vpn/vpn_connman_vpnd-vpn-rtnl.$(OBJEXT) \ -@VPN_TRUE@ src/vpn_connman_vpnd-dbus.$(OBJEXT) \ -@VPN_TRUE@ src/vpn_connman_vpnd-storage.$(OBJEXT) \ -@VPN_TRUE@ src/vpn_connman_vpnd-ipaddress.$(OBJEXT) \ -@VPN_TRUE@ src/vpn_connman_vpnd-agent.$(OBJEXT) \ -@VPN_TRUE@ vpn/vpn_connman_vpnd-vpn-agent.$(OBJEXT) \ -@VPN_TRUE@ src/vpn_connman_vpnd-inotify.$(OBJEXT) \ -@VPN_TRUE@ vpn/vpn_connman_vpnd-vpn-config.$(OBJEXT) -vpn_connman_vpnd_OBJECTS = $(am_vpn_connman_vpnd_OBJECTS) -@VPN_TRUE@vpn_connman_vpnd_DEPENDENCIES = gdbus/libgdbus-internal.la \ -@VPN_TRUE@ $(am__DEPENDENCIES_1) -vpn_connman_vpnd_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) \ - $(vpn_connman_vpnd_LDFLAGS) $(LDFLAGS) -o $@ -SCRIPTS = $(test_SCRIPTS) -DEFAULT_INCLUDES = -I.@am__isrc@ -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -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_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_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -SOURCES = $(gdbus_libgdbus_internal_la_SOURCES) \ - plugins/hh2serial-gps.c plugins/iospm.c \ - plugins/session_policy_local.c plugins/tist.c \ - scripts/libppp-plugin.c $(vpn_plugins_l2tp_la_SOURCES) \ - $(vpn_plugins_openconnect_la_SOURCES) \ - $(vpn_plugins_openvpn_la_SOURCES) \ - $(vpn_plugins_pptp_la_SOURCES) $(vpn_plugins_vpnc_la_SOURCES) \ - $(client_connmanctl_SOURCES) scripts/openconnect-script.c \ - scripts/openvpn-script.c $(src_connmand_SOURCES) \ - tools/addr-test.c $(tools_dbus_test_SOURCES) \ - $(tools_dhcp_server_test_SOURCES) $(tools_dhcp_test_SOURCES) \ - $(tools_dnsproxy_test_SOURCES) $(tools_iptables_test_SOURCES) \ - $(tools_iptables_unit_SOURCES) $(tools_netlink_test_SOURCES) \ - tools/polkit-test.c tools/private-network-test.c \ - $(tools_resolv_test_SOURCES) $(tools_session_test_SOURCES) \ - tools/stats-tool.c $(tools_supplicant_test_SOURCES) \ - tools/tap-test.c $(tools_web_test_SOURCES) \ - $(tools_wispr_SOURCES) $(tools_wpad_test_SOURCES) \ - $(unit_test_ippool_SOURCES) $(vpn_connman_vpnd_SOURCES) -DIST_SOURCES = $(gdbus_libgdbus_internal_la_SOURCES) \ - plugins/hh2serial-gps.c plugins/iospm.c \ - plugins/session_policy_local.c plugins/tist.c \ - scripts/libppp-plugin.c \ - $(am__vpn_plugins_l2tp_la_SOURCES_DIST) \ - $(am__vpn_plugins_openconnect_la_SOURCES_DIST) \ - $(am__vpn_plugins_openvpn_la_SOURCES_DIST) \ - $(am__vpn_plugins_pptp_la_SOURCES_DIST) \ - $(am__vpn_plugins_vpnc_la_SOURCES_DIST) \ - $(am__client_connmanctl_SOURCES_DIST) \ - scripts/openconnect-script.c scripts/openvpn-script.c \ - $(am__src_connmand_SOURCES_DIST) tools/addr-test.c \ - $(am__tools_dbus_test_SOURCES_DIST) \ - $(am__tools_dhcp_server_test_SOURCES_DIST) \ - $(am__tools_dhcp_test_SOURCES_DIST) \ - $(am__tools_dnsproxy_test_SOURCES_DIST) \ - $(am__tools_iptables_test_SOURCES_DIST) \ - $(am__tools_iptables_unit_SOURCES_DIST) \ - $(am__tools_netlink_test_SOURCES_DIST) tools/polkit-test.c \ - tools/private-network-test.c \ - $(am__tools_resolv_test_SOURCES_DIST) \ - $(am__tools_session_test_SOURCES_DIST) tools/stats-tool.c \ - $(am__tools_supplicant_test_SOURCES_DIST) tools/tap-test.c \ - $(am__tools_web_test_SOURCES_DIST) \ - $(am__tools_wispr_SOURCES_DIST) \ - $(am__tools_wpad_test_SOURCES_DIST) \ - $(unit_test_ippool_SOURCES) \ - $(am__vpn_connman_vpnd_SOURCES_DIST) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man1dir = $(mandir)/man1 -man5dir = $(mandir)/man5 -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -DATA = $(dbusconf_DATA) $(dbusservice_DATA) $(pkgconfig_DATA) \ - $(policy_DATA) $(script_DATA) $(systemdunit_DATA) -HEADERS = $(include_HEADERS) $(nodist_include_HEADERS) \ - $(noinst_HEADERS) -ETAGS = etags -CTAGS = ctags -# If stdout is a non-dumb tty, use colors. If test -t is not supported, -# then this fails; a conservative approach. Of course do not redirect -# stdout here, just stderr. -am__tty_colors = \ -red=; grn=; lgn=; blu=; std=; \ -test "X$(AM_COLOR_TESTS)" != Xno \ -&& test "X$$TERM" != Xdumb \ -&& { test "X$(AM_COLOR_TESTS)" = Xalways || test -t 1 2>/dev/null; } \ -&& { \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - std='[m'; \ -} -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(distdir) -am__remove_distdir = \ - if test -d "$(distdir)"; then \ - find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -rf "$(distdir)" \ - || { sleep 5 && rm -rf "$(distdir)"; }; \ - else :; fi -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@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DBUS_CFLAGS = @DBUS_CFLAGS@ -DBUS_CONFDIR = @DBUS_CONFDIR@ -DBUS_DATADIR = @DBUS_DATADIR@ -DBUS_LIBS = @DBUS_LIBS@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_LIBS = @GLIB_LIBS@ -GNUTLS_CFLAGS = @GNUTLS_CFLAGS@ -GNUTLS_LIBS = @GNUTLS_LIBS@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -IPTABLES_SAVE = @IPTABLES_SAVE@ -L2TP = @L2TP@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OPENCONNECT = @OPENCONNECT@ -OPENVPN = @OPENVPN@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POLKIT_DATADIR = @POLKIT_DATADIR@ -PPPD = @PPPD@ -PPTP = @PPTP@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -SYSTEMD_UNITDIR = @SYSTEMD_UNITDIR@ -VERSION = @VERSION@ -VPNC = @VPNC@ -WPASUPPLICANT = @WPASUPPLICANT@ -XTABLES_CFLAGS = @XTABLES_CFLAGS@ -XTABLES_LIBS = @XTABLES_LIBS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@/connman -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AM_MAKEFLAGS = --no-print-directory -noinst_LTLIBRARIES = gdbus/libgdbus-internal.la -include_HEADERS = include/log.h include/plugin.h \ - include/notifier.h include/service.h \ - include/resolver.h include/ipconfig.h \ - include/device.h include/network.h include/inet.h \ - include/storage.h include/provision.h \ - include/session.h include/ipaddress.h include/agent.h \ - include/inotify.h include/peer.h include/machine.h - -nodist_include_HEADERS = include/version.h -noinst_HEADERS = include/rtnl.h include/task.h \ - include/dbus.h include/option.h \ - include/provider.h include/vpn-dbus.h \ - include/utsname.h include/timeserver.h include/proxy.h \ - include/technology.h include/setting.h - -local_headers = $(foreach file,$(include_HEADERS) $(nodist_include_HEADERS) \ - $(noinst_HEADERS), include/connman/$(notdir $(file))) - -gdbus_libgdbus_internal_la_SOURCES = gdbus/gdbus.h \ - gdbus/mainloop.c gdbus/watch.c \ - gdbus/object.c gdbus/client.c gdbus/polkit.c - -gdhcp_sources = gdhcp/gdhcp.h gdhcp/common.h gdhcp/common.c gdhcp/client.c \ - gdhcp/server.c gdhcp/ipv4ll.h gdhcp/ipv4ll.c gdhcp/unaligned.h - -gweb_sources = gweb/gweb.h gweb/gweb.c gweb/gresolv.h gweb/gresolv.c \ - $(am__append_1) $(am__append_2) -shared_sources = src/shared/util.h src/shared/util.c \ - src/shared/netlink.h src/shared/netlink.c - -@DATAFILES_TRUE@@NMCOMPAT_TRUE@nmcompat_conf = plugins/connman-nmcompat.conf -@DATAFILES_TRUE@dbusconfdir = @DBUS_CONFDIR@ -@DATAFILES_TRUE@dbusconf_DATA = src/connman.conf $(nmcompat_conf) \ -@DATAFILES_TRUE@ $(am__append_3) -@DATAFILES_TRUE@@VPN_TRUE@dbusservicedir = @DBUS_DATADIR@ -@DATAFILES_TRUE@@VPN_TRUE@dbusservice_DATA = vpn/net.connman.vpn.service -@DATAFILES_TRUE@@SYSTEMD_TRUE@systemdunitdir = @SYSTEMD_UNITDIR@ -@DATAFILES_TRUE@@SYSTEMD_TRUE@systemdunit_DATA = src/connman.service \ -@DATAFILES_TRUE@@SYSTEMD_TRUE@ $(am__append_4) -service_files_sources = src/connman.service.in src/net.connman.service.in \ - vpn/connman-vpn.service.in \ - vpn/net.connman.vpn.service.in - -service_files = src/connman.service src/net.connman.service \ - vpn/connman-vpn.service \ - vpn/net.connman.vpn.service - -plugin_LTLIBRARIES = $(am__append_19) $(am__append_59) \ - $(am__append_68) $(am__append_72) -plugin_objects = $(am__append_20) $(am__append_60) $(am__append_69) \ - $(am__append_73) -builtin_modules = $(am__append_7) $(am__append_9) $(am__append_11) \ - $(am__append_13) $(am__append_15) $(am__append_17) \ - $(am__append_21) $(am__append_23) $(am__append_25) \ - $(am__append_54) $(am__append_56) $(am__append_64) \ - $(am__append_66) $(am__append_70) $(am__append_74) -builtin_sources = $(am__append_8) $(am__append_10) $(am__append_12) \ - $(am__append_14) $(am__append_16) $(am__append_18) \ - $(am__append_22) $(am__append_24) $(am__append_26) \ - $(am__append_55) $(am__append_57) $(am__append_65) \ - $(am__append_67) $(am__append_71) $(am__append_75) -builtin_libadd = -builtin_cflags = -unit_objects = -MANUAL_PAGES = $(am__append_77) doc/connman.8 doc/connman.conf.5 -src_connmand_SOURCES = $(gdhcp_sources) $(gweb_sources) \ - $(builtin_sources) $(shared_sources) src/connman.ver \ - src/main.c src/connman.h src/log.c \ - src/error.c src/plugin.c src/task.c \ - src/device.c src/network.c src/connection.c \ - src/manager.c src/service.c \ - src/clock.c src/timezone.c src/agent-connman.c \ - src/agent.c src/notifier.c src/provider.c \ - src/resolver.c src/ipconfig.c src/detect.c src/inet.c \ - src/dhcp.c src/dhcpv6.c src/rtnl.c src/proxy.c \ - src/utsname.c src/timeserver.c src/rfkill.c \ - src/storage.c src/dbus.c src/config.c \ - src/technology.c src/counter.c src/ntp.c \ - src/session.c src/tethering.c src/wpad.c src/wispr.c \ - src/stats.c src/iptables.c src/dnsproxy.c src/6to4.c \ - src/ippool.c src/bridge.c src/nat.c src/ipaddress.c \ - src/inotify.c src/firewall.c src/ipv6pd.c src/peer.c \ - src/peer_service.c src/machine.c src/util.c - -src_connmand_LDADD = gdbus/libgdbus-internal.la $(builtin_libadd) \ - @GLIB_LIBS@ @DBUS_LIBS@ @XTABLES_LIBS@ @GNUTLS_LIBS@ \ - -lresolv -ldl -lrt - -src_connmand_LDFLAGS = -Wl,--export-dynamic \ - -Wl,--version-script=$(srcdir)/src/connman.ver - -@VPN_TRUE@vpn_plugin_LTLIBRARIES = $(am__append_30) $(am__append_35) \ -@VPN_TRUE@ $(am__append_40) $(am__append_45) $(am__append_50) -@VPN_TRUE@vpn_plugin_objects = $(am__append_31) $(am__append_36) \ -@VPN_TRUE@ $(am__append_41) $(am__append_46) $(am__append_51) -@VPN_TRUE@builtin_vpn_modules = $(am__append_27) $(am__append_32) \ -@VPN_TRUE@ $(am__append_37) $(am__append_42) $(am__append_47) -@VPN_TRUE@builtin_vpn_sources = $(am__append_28) $(am__append_33) \ -@VPN_TRUE@ $(am__append_38) $(am__append_43) $(am__append_48) \ -@VPN_TRUE@ $(builtin_vpn_source) -@VPN_TRUE@builtin_vpn_libadd = -@VPN_TRUE@builtin_vpn_cflags = $(am__append_29) $(am__append_34) \ -@VPN_TRUE@ $(am__append_39) $(am__append_44) $(am__append_49) -@VPN_TRUE@vpn_connman_vpnd_SOURCES = $(builtin_vpn_sources) \ -@VPN_TRUE@ $(gweb_sources) vpn/vpn.ver vpn/main.c vpn/vpn.h \ -@VPN_TRUE@ src/log.c src/error.c src/plugin.c src/task.c \ -@VPN_TRUE@ vpn/vpn-manager.c vpn/vpn-provider.c \ -@VPN_TRUE@ vpn/vpn-provider.h vpn/vpn-rtnl.h \ -@VPN_TRUE@ vpn/vpn-ipconfig.c src/inet.c vpn/vpn-rtnl.c \ -@VPN_TRUE@ src/dbus.c src/storage.c src/ipaddress.c src/agent.c \ -@VPN_TRUE@ vpn/vpn-agent.c vpn/vpn-agent.h src/inotify.c \ -@VPN_TRUE@ vpn/vpn-config.c - -@VPN_TRUE@vpn_connman_vpnd_LDADD = gdbus/libgdbus-internal.la $(builtin_vpn_libadd) \ -@VPN_TRUE@ @GLIB_LIBS@ @DBUS_LIBS@ @GNUTLS_LIBS@ \ -@VPN_TRUE@ -lresolv -ldl - -@VPN_TRUE@vpn_connman_vpnd_LDFLAGS = -Wl,--export-dynamic \ -@VPN_TRUE@ -Wl,--version-script=$(srcdir)/vpn/vpn.ver - -BUILT_SOURCES = $(local_headers) src/builtin.h $(service_files) \ - scripts/connman $(am__append_6) -CLEANFILES = src/connman.conf $(BUILT_SOURCES) $(service_files) \ - $(am__append_81) -statedir = $(localstatedir)/run/connman -vpn_statedir = $(localstatedir)/run/connman-vpn -@VPN_TRUE@vpn_plugindir = $(libdir)/connman/plugins-vpn -plugindir = $(libdir)/connman/plugins -scriptdir = $(libdir)/connman/scripts -storagedir = $(localstatedir)/lib/connman -vpn_storagedir = $(localstatedir)/lib/connman-vpn -configdir = ${sysconfdir}/connman -@MAINTAINER_MODE_FALSE@@VPN_TRUE@build_vpn_plugindir = $(vpn_plugindir) -@MAINTAINER_MODE_TRUE@@VPN_TRUE@build_vpn_plugindir = $(abs_top_srcdir)/vpn/plugins/.libs -@MAINTAINER_MODE_FALSE@build_plugindir = $(plugindir) -@MAINTAINER_MODE_TRUE@build_plugindir = $(abs_top_srcdir)/plugins/.libs -@MAINTAINER_MODE_FALSE@build_scriptdir = $(scriptdir) -@MAINTAINER_MODE_TRUE@build_scriptdir = $(abs_top_srcdir)/scripts -AM_CFLAGS = @DBUS_CFLAGS@ @GLIB_CFLAGS@ @XTABLES_CFLAGS@ \ - @GNUTLS_CFLAGS@ $(builtin_cflags) \ - -DCONNMAN_PLUGIN_BUILTIN \ - -DSTATEDIR=\""$(statedir)"\" \ - -DVPN_STATEDIR=\""$(vpn_statedir)"\" \ - -DPLUGINDIR=\""$(build_plugindir)"\" \ - -DSCRIPTDIR=\""$(build_scriptdir)"\" \ - -DSTORAGEDIR=\""$(storagedir)\"" \ - -DVPN_STORAGEDIR=\""$(vpn_storagedir)\"" \ - -DCONFIGDIR=\""$(configdir)\"" - -@VPN_FALSE@AM_CPPFLAGS = -I$(builddir)/include -I$(builddir)/src -I$(srcdir)/gdbus -@VPN_TRUE@AM_CPPFLAGS = -I$(builddir)/include -I$(srcdir)/gdbus -src_connmand_CFLAGS = @DBUS_CFLAGS@ @GLIB_CFLAGS@ @XTABLES_CFLAGS@ \ - @GNUTLS_CFLAGS@ $(builtin_cflags) \ - -DCONNMAN_PLUGIN_BUILTIN \ - -DSTATEDIR=\""$(statedir)"\" \ - -DPLUGINDIR=\""$(build_plugindir)"\" \ - -DSCRIPTDIR=\""$(build_scriptdir)"\" \ - -DSTORAGEDIR=\""$(storagedir)\"" \ - -DVPN_STORAGEDIR=\""$(vpn_storagedir)\"" \ - -DCONFIGDIR=\""$(configdir)\"" \ - -I$(builddir)/src - -EXTRA_DIST = src/genbuiltin src/connman-dbus.conf \ - src/connman-polkit.conf plugins/connman-nmcompat.conf \ - $(service_files_sources) scripts/connman.in vpn/vpn-dbus.conf \ - vpn/vpn-polkit.conf plugins/polkit.policy \ - vpn/vpn-polkit.policy $(test_scripts) doc/overview-api.txt \ - doc/behavior-api.txt doc/coding-style.txt \ - doc/wifi-p2p-overview.txt doc/vpn-agent-api.txt \ - doc/peer-api.txt doc/ipconfig-api.txt doc/plugin-api.txt \ - doc/manager-api.txt doc/agent-api.txt doc/service-api.txt \ - doc/technology-api.txt doc/counter-api.txt \ - doc/config-format.txt doc/clock-api.txt doc/session-api.txt \ - doc/session-overview.txt doc/backtrace.txt \ - doc/advanced-configuration.txt doc/vpn-config-format.txt \ - doc/vpn-connection-api.txt doc/vpn-manager-api.txt \ - doc/vpn-overview.txt doc/session-policy-format.txt \ - src/main.conf src/eduroam.config $(am__append_80) \ - vpn/connman-task.te -@VPN_TRUE@vpn_connman_vpnd_CFLAGS = @DBUS_CFLAGS@ @GLIB_CFLAGS@ \ -@VPN_TRUE@ $(builtin_vpn_cflags) \ -@VPN_TRUE@ -DCONNMAN_PLUGIN_BUILTIN \ -@VPN_TRUE@ -DVPN_STATEDIR=\""$(vpn_statedir)"\" \ -@VPN_TRUE@ -DPLUGINDIR=\""$(build_vpn_plugindir)"\" \ -@VPN_TRUE@ -DSCRIPTDIR=\""$(build_scriptdir)"\" \ -@VPN_TRUE@ -DSTORAGEDIR=\""$(storagedir)\"" \ -@VPN_TRUE@ -DVPN_STORAGEDIR=\""$(vpn_storagedir)\"" \ -@VPN_TRUE@ -DCONFIGDIR=\""$(configdir)\"" \ -@VPN_TRUE@ -I$(builddir)/vpn - -script_DATA = -script_LTLIBRARIES = $(am__append_52) $(am__append_53) -plugin_cflags = -fvisibility=hidden -I$(srcdir)/gdbus \ - @DBUS_CFLAGS@ @GLIB_CFLAGS@ - -plugin_ldflags = -no-undefined -module -avoid-version -gsupplicant_sources = gsupplicant/gsupplicant.h gsupplicant/dbus.h \ - gsupplicant/supplicant.c gsupplicant/dbus.c - -@HH2SERIAL_GPS_BUILTIN_FALSE@@HH2SERIAL_GPS_TRUE@plugins_hh2serial_gps_la_CFLAGS = $(plugin_cflags) -@HH2SERIAL_GPS_BUILTIN_FALSE@@HH2SERIAL_GPS_TRUE@plugins_hh2serial_gps_la_LDFLAGS = $(plugin_ldflags) -@L2TP_BUILTIN_TRUE@@L2TP_TRUE@@VPN_TRUE@builtin_vpn_source = vpn/plugins/vpn.c vpn/plugins/vpn.h -@OPENCONNECT_BUILTIN_TRUE@@OPENCONNECT_TRUE@@VPN_TRUE@builtin_vpn_source = vpn/plugins/vpn.c vpn/plugins/vpn.h -@OPENVPN_BUILTIN_TRUE@@OPENVPN_TRUE@@VPN_TRUE@builtin_vpn_source = vpn/plugins/vpn.c vpn/plugins/vpn.h -@PPTP_BUILTIN_TRUE@@PPTP_TRUE@@VPN_TRUE@builtin_vpn_source = vpn/plugins/vpn.c vpn/plugins/vpn.h -@VPNC_BUILTIN_TRUE@@VPNC_TRUE@@VPN_TRUE@builtin_vpn_source = vpn/plugins/vpn.c vpn/plugins/vpn.h -@OPENCONNECT_BUILTIN_FALSE@@OPENCONNECT_TRUE@@VPN_TRUE@vpn_plugins_openconnect_la_SOURCES = vpn/plugins/vpn.h vpn/plugins/vpn.c \ -@OPENCONNECT_BUILTIN_FALSE@@OPENCONNECT_TRUE@@VPN_TRUE@ vpn/plugins/openconnect.c - -@OPENCONNECT_BUILTIN_FALSE@@OPENCONNECT_TRUE@@VPN_TRUE@vpn_plugins_openconnect_la_CFLAGS = $(plugin_cflags) \ -@OPENCONNECT_BUILTIN_FALSE@@OPENCONNECT_TRUE@@VPN_TRUE@ -DOPENCONNECT=\"@OPENCONNECT@\" \ -@OPENCONNECT_BUILTIN_FALSE@@OPENCONNECT_TRUE@@VPN_TRUE@ -DVPN_STATEDIR=\""$(vpn_statedir)"\" \ -@OPENCONNECT_BUILTIN_FALSE@@OPENCONNECT_TRUE@@VPN_TRUE@ -DSCRIPTDIR=\""$(build_scriptdir)"\" - -@OPENCONNECT_BUILTIN_FALSE@@OPENCONNECT_TRUE@@VPN_TRUE@vpn_plugins_openconnect_la_LDFLAGS = $(plugin_ldflags) -@OPENVPN_BUILTIN_FALSE@@OPENVPN_TRUE@@VPN_TRUE@vpn_plugins_openvpn_la_SOURCES = vpn/plugins/vpn.h vpn/plugins/vpn.c \ -@OPENVPN_BUILTIN_FALSE@@OPENVPN_TRUE@@VPN_TRUE@ vpn/plugins/openvpn.c - -@OPENVPN_BUILTIN_FALSE@@OPENVPN_TRUE@@VPN_TRUE@vpn_plugins_openvpn_la_CFLAGS = $(plugin_cflags) -DOPENVPN=\"@OPENVPN@\" \ -@OPENVPN_BUILTIN_FALSE@@OPENVPN_TRUE@@VPN_TRUE@ -DVPN_STATEDIR=\""$(vpn_statedir)"\" \ -@OPENVPN_BUILTIN_FALSE@@OPENVPN_TRUE@@VPN_TRUE@ -DSCRIPTDIR=\""$(build_scriptdir)"\" - -@OPENVPN_BUILTIN_FALSE@@OPENVPN_TRUE@@VPN_TRUE@vpn_plugins_openvpn_la_LDFLAGS = $(plugin_ldflags) -@VPNC_BUILTIN_FALSE@@VPNC_TRUE@@VPN_TRUE@vpn_plugins_vpnc_la_SOURCES = vpn/plugins/vpn.h vpn/plugins/vpn.c \ -@VPNC_BUILTIN_FALSE@@VPNC_TRUE@@VPN_TRUE@ vpn/plugins/vpnc.c - -@VPNC_BUILTIN_FALSE@@VPNC_TRUE@@VPN_TRUE@vpn_plugins_vpnc_la_CFLAGS = $(plugin_cflags) -DVPNC=\"@VPNC@\" \ -@VPNC_BUILTIN_FALSE@@VPNC_TRUE@@VPN_TRUE@ -DVPN_STATEDIR=\""$(vpn_statedir)"\" \ -@VPNC_BUILTIN_FALSE@@VPNC_TRUE@@VPN_TRUE@ -DSCRIPTDIR=\""$(build_scriptdir)"\" - -@VPNC_BUILTIN_FALSE@@VPNC_TRUE@@VPN_TRUE@vpn_plugins_vpnc_la_LDFLAGS = $(plugin_ldflags) -@L2TP_BUILTIN_FALSE@@L2TP_TRUE@@VPN_TRUE@vpn_plugins_l2tp_la_SOURCES = vpn/plugins/vpn.h vpn/plugins/vpn.c \ -@L2TP_BUILTIN_FALSE@@L2TP_TRUE@@VPN_TRUE@ vpn/plugins/l2tp.c - -@L2TP_BUILTIN_FALSE@@L2TP_TRUE@@VPN_TRUE@vpn_plugins_l2tp_la_CFLAGS = $(plugin_cflags) -DL2TP=\"@L2TP@\" \ -@L2TP_BUILTIN_FALSE@@L2TP_TRUE@@VPN_TRUE@ -DVPN_STATEDIR=\""$(vpn_statedir)"\" \ -@L2TP_BUILTIN_FALSE@@L2TP_TRUE@@VPN_TRUE@ -DSCRIPTDIR=\""$(build_scriptdir)"\" - -@L2TP_BUILTIN_FALSE@@L2TP_TRUE@@VPN_TRUE@vpn_plugins_l2tp_la_LDFLAGS = $(plugin_ldflags) -@PPTP_BUILTIN_FALSE@@PPTP_TRUE@@VPN_TRUE@vpn_plugins_pptp_la_SOURCES = vpn/plugins/vpn.h vpn/plugins/vpn.c \ -@PPTP_BUILTIN_FALSE@@PPTP_TRUE@@VPN_TRUE@ vpn/plugins/pptp.c - -@PPTP_BUILTIN_FALSE@@PPTP_TRUE@@VPN_TRUE@vpn_plugins_pptp_la_CFLAGS = $(plugin_cflags) -DPPPD=\"@PPPD@\" \ -@PPTP_BUILTIN_FALSE@@PPTP_TRUE@@VPN_TRUE@ -DPPTP=\"@PPTP@\" \ -@PPTP_BUILTIN_FALSE@@PPTP_TRUE@@VPN_TRUE@ -DVPN_STATEDIR=\""$(vpn_statedir)"\" \ -@PPTP_BUILTIN_FALSE@@PPTP_TRUE@@VPN_TRUE@ -DSCRIPTDIR=\""$(build_scriptdir)"\" - -@PPTP_BUILTIN_FALSE@@PPTP_TRUE@@VPN_TRUE@vpn_plugins_pptp_la_LDFLAGS = $(plugin_ldflags) -@L2TP_TRUE@@PPTP_FALSE@@VPN_TRUE@scripts_libppp_plugin_la_LDFLAGS = $(plugin_ldflags) -@PPTP_TRUE@@VPN_TRUE@scripts_libppp_plugin_la_LDFLAGS = $(plugin_ldflags) -@L2TP_TRUE@@PPTP_FALSE@@VPN_TRUE@scripts_libppp_plugin_la_LIBADD = @DBUS_LIBS@ -@PPTP_TRUE@@VPN_TRUE@scripts_libppp_plugin_la_LIBADD = @DBUS_LIBS@ -@DATAFILES_TRUE@@POLKIT_TRUE@policydir = @POLKIT_DATADIR@ -@DATAFILES_TRUE@@POLKIT_TRUE@policy_DATA = plugins/net.connman.policy \ -@DATAFILES_TRUE@@POLKIT_TRUE@ $(am__append_58) -@IOSPM_TRUE@plugins_iospm_la_CFLAGS = $(plugin_cflags) -@IOSPM_TRUE@plugins_iospm_la_LDFLAGS = $(plugin_ldflags) -@OPENCONNECT_FALSE@@VPNC_TRUE@scripts_openconnect_script_LDADD = @DBUS_LIBS@ -@OPENCONNECT_TRUE@scripts_openconnect_script_LDADD = @DBUS_LIBS@ -@OPENVPN_TRUE@scripts_openvpn_script_LDADD = @DBUS_LIBS@ -@TIST_BUILTIN_FALSE@@TIST_TRUE@plugins_tist_la_CFLAGS = $(plugin_cflags) -@TIST_BUILTIN_FALSE@@TIST_TRUE@plugins_tist_la_LDFLAGS = $(plugin_ldflags) -@SESSION_POLICY_LOCAL_BUILTIN_FALSE@@SESSION_POLICY_LOCAL_TRUE@plugins_session_policy_local_la_CFLAGS = $(plugin_cflags) \ -@SESSION_POLICY_LOCAL_BUILTIN_FALSE@@SESSION_POLICY_LOCAL_TRUE@ -DSTORAGEDIR=\""$(storagedir)\"" - -@SESSION_POLICY_LOCAL_BUILTIN_FALSE@@SESSION_POLICY_LOCAL_TRUE@plugins_session_policy_local_la_LDFLAGS = $(plugin_ldflags) -@CLIENT_TRUE@client_connmanctl_SOURCES = client/dbus_helpers.h client/dbus_helpers.c \ -@CLIENT_TRUE@ client/services.h client/services.c \ -@CLIENT_TRUE@ client/commands.h client/commands.c \ -@CLIENT_TRUE@ client/input.h client/input.c \ -@CLIENT_TRUE@ client/agent.h client/agent.c \ -@CLIENT_TRUE@ client/peers.h client/peers.c \ -@CLIENT_TRUE@ client/vpnconnections.h client/vpnconnections.c \ -@CLIENT_TRUE@ client/main.c - -@CLIENT_TRUE@client_connmanctl_LDADD = gdbus/libgdbus-internal.la @DBUS_LIBS@ @GLIB_LIBS@ \ -@CLIENT_TRUE@ -lreadline -ldl - -unit_test_ippool_SOURCES = src/log.c src/dbus.c src/error.c \ - src/ippool.c unit/test-ippool.c - -unit_test_ippool_LDADD = gdbus/libgdbus-internal.la \ - @GLIB_LIBS@ @DBUS_LIBS@ -ldl - -@WISPR_TRUE@tools_wispr_SOURCES = $(gweb_sources) tools/wispr.c -@WISPR_TRUE@tools_wispr_LDADD = @GLIB_LIBS@ @GNUTLS_LIBS@ -lresolv -@TOOLS_TRUE@tools_supplicant_test_SOURCES = tools/supplicant-test.c \ -@TOOLS_TRUE@ tools/supplicant-dbus.h tools/supplicant-dbus.c \ -@TOOLS_TRUE@ tools/supplicant.h tools/supplicant.c - -@TOOLS_TRUE@tools_supplicant_test_LDADD = gdbus/libgdbus-internal.la \ -@TOOLS_TRUE@ @GLIB_LIBS@ @DBUS_LIBS@ - -@TOOLS_TRUE@tools_web_test_SOURCES = $(gweb_sources) tools/web-test.c -@TOOLS_TRUE@tools_web_test_LDADD = @GLIB_LIBS@ @GNUTLS_LIBS@ -lresolv -@TOOLS_TRUE@tools_resolv_test_SOURCES = gweb/gresolv.h gweb/gresolv.c tools/resolv-test.c -@TOOLS_TRUE@tools_resolv_test_LDADD = @GLIB_LIBS@ -lresolv -@TOOLS_TRUE@tools_wpad_test_SOURCES = gweb/gresolv.h gweb/gresolv.c tools/wpad-test.c -@TOOLS_TRUE@tools_wpad_test_LDADD = @GLIB_LIBS@ -lresolv -@TOOLS_TRUE@tools_stats_tool_LDADD = @GLIB_LIBS@ -@TOOLS_TRUE@tools_dhcp_test_SOURCES = $(gdhcp_sources) tools/dhcp-test.c -@TOOLS_TRUE@tools_dhcp_test_LDADD = @GLIB_LIBS@ -@TOOLS_TRUE@tools_dhcp_server_test_SOURCES = $(gdhcp_sources) tools/dhcp-server-test.c -@TOOLS_TRUE@tools_dhcp_server_test_LDADD = @GLIB_LIBS@ -@TOOLS_TRUE@tools_dbus_test_SOURCES = tools/dbus-test.c -@TOOLS_TRUE@tools_dbus_test_LDADD = gdbus/libgdbus-internal.la @GLIB_LIBS@ @DBUS_LIBS@ -@TOOLS_TRUE@tools_polkit_test_LDADD = @DBUS_LIBS@ -@TOOLS_TRUE@tools_iptables_test_SOURCES = src/log.c src/iptables.c tools/iptables-test.c -@TOOLS_TRUE@tools_iptables_test_LDADD = @GLIB_LIBS@ @XTABLES_LIBS@ -ldl -@TOOLS_TRUE@tools_private_network_test_LDADD = @GLIB_LIBS@ @DBUS_LIBS@ -@TOOLS_TRUE@tools_session_test_SOURCES = src/log.c src/dbus.c src/error.c \ -@TOOLS_TRUE@ tools/session-test.c tools/session-utils.c tools/manager-api.c \ -@TOOLS_TRUE@ tools/session-api.c tools/session-test.h - -@TOOLS_TRUE@tools_session_test_LDADD = gdbus/libgdbus-internal.la \ -@TOOLS_TRUE@ @GLIB_LIBS@ @DBUS_LIBS@ -ldl - -@TOOLS_TRUE@tools_iptables_unit_CFLAGS = @DBUS_CFLAGS@ @GLIB_CFLAGS@ @XTABLES_CFLAGS@ \ -@TOOLS_TRUE@ -DIPTABLES_SAVE=\""${IPTABLES_SAVE}"\" - -@TOOLS_TRUE@tools_iptables_unit_SOURCES = src/log.c \ -@TOOLS_TRUE@ src/iptables.c src/firewall.c src/nat.c tools/iptables-unit.c - -@TOOLS_TRUE@tools_iptables_unit_LDADD = gdbus/libgdbus-internal.la \ -@TOOLS_TRUE@ @GLIB_LIBS@ @DBUS_LIBS@ @XTABLES_LIBS@ -ldl - -@TOOLS_TRUE@tools_dnsproxy_test_SOURCES = tools/dnsproxy-test.c -@TOOLS_TRUE@tools_dnsproxy_test_LDADD = @GLIB_LIBS@ -@TOOLS_TRUE@tools_netlink_test_SOURCES = $(shared_sources) tools/netlink-test.c -@TOOLS_TRUE@tools_netlink_test_LDADD = @GLIB_LIBS@ -test_scripts = test/get-state test/list-services test/monitor-services \ - test/test-clock test/simple-agent test/show-introspection \ - test/test-compat test/test-manager test/test-connman \ - test/monitor-connman test/connect-provider \ - test/remove-provider test/test-counter test/set-ipv4-method \ - test/set-ipv6-method test/get-services \ - test/get-proxy-autoconfig test/set-proxy test/enable-tethering \ - test/disable-tethering test/backtrace test/test-session \ - test/p2p-on-supplicant test/test-new-supplicant \ - test/service-move-before test/set-global-timeservers \ - test/get-global-timeservers test/set-nameservers \ - test/set-domains test/set-timeservers test/set-clock \ - test/vpn-connect test/vpn-disconnect test/vpn-get \ - test/monitor-vpn test/vpn-property -@TEST_TRUE@testdir = $(pkglibdir)/test -@TEST_TRUE@test_SCRIPTS = $(test_scripts) -dist_man_MANS = $(MANUAL_PAGES) -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = connman.pc -DISTCHECK_CONFIGURE_FLAGS = --disable-datafiles \ - --enable-hh2serial-gps \ - --enable-openconnect \ - --enable-openvpn \ - --enable-vpnc \ - --enable-session-policy-local \ - --enable-nmcompat \ - --enable-polkit - -DISTCLEANFILES = $(pkgconfig_DATA) -MAINTAINERCLEANFILES = Makefile.in \ - aclocal.m4 configure config.h.in config.sub config.guess \ - ltmain.sh depcomp compile missing install-sh mkinstalldirs test-driver - -do_subst = $(AM_V_GEN)$(SED) \ - -e 's,[@]prefix[@],$(prefix),g' \ - -e 's,[@]sbindir[@],$(sbindir),g' \ - -e 's,[@]sysconfdir[@],$(sysconfdir),g' - -all: $(BUILT_SOURCES) config.h - $(MAKE) $(AM_MAKEFLAGS) all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -am--refresh: Makefile - @: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/Makefile.plugins $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ - $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - echo ' $(SHELL) ./config.status'; \ - $(SHELL) ./config.status;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ - esac; -$(srcdir)/Makefile.plugins: - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - $(am__cd) $(srcdir) && $(AUTOCONF) -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) -$(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 - -stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status - @rm -f stamp-h1 - cd $(top_builddir) && $(SHELL) ./config.status config.h -$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) - rm -f stamp-h1 - touch $@ - -distclean-hdr: - -rm -f config.h stamp-h1 -include/version.h: $(top_builddir)/config.status $(top_srcdir)/include/version.h.in - cd $(top_builddir) && $(SHELL) ./config.status $@ -connman.pc: $(top_builddir)/config.status $(srcdir)/connman.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $@ - -clean-noinstLTLIBRARIES: - -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ - } - -uninstall-pluginLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ - done - -clean-pluginLTLIBRARIES: - -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -install-scriptLTLIBRARIES: $(script_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(script_LTLIBRARIES)'; test -n "$(scriptdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(scriptdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(scriptdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(scriptdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(scriptdir)"; \ - } - -uninstall-scriptLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(script_LTLIBRARIES)'; test -n "$(scriptdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(scriptdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(scriptdir)/$$f"; \ - done - -clean-scriptLTLIBRARIES: - -test -z "$(script_LTLIBRARIES)" || rm -f $(script_LTLIBRARIES) - @list='$(script_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -install-vpn_pluginLTLIBRARIES: $(vpn_plugin_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(vpn_plugin_LTLIBRARIES)'; test -n "$(vpn_plugindir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(vpn_plugindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(vpn_plugindir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(vpn_plugindir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(vpn_plugindir)"; \ - } - -uninstall-vpn_pluginLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(vpn_plugin_LTLIBRARIES)'; test -n "$(vpn_plugindir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(vpn_plugindir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(vpn_plugindir)/$$f"; \ - done - -clean-vpn_pluginLTLIBRARIES: - -test -z "$(vpn_plugin_LTLIBRARIES)" || rm -f $(vpn_plugin_LTLIBRARIES) - @list='$(vpn_plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -gdbus/$(am__dirstamp): - @$(MKDIR_P) gdbus - @: > gdbus/$(am__dirstamp) -gdbus/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) gdbus/$(DEPDIR) - @: > gdbus/$(DEPDIR)/$(am__dirstamp) -gdbus/mainloop.lo: gdbus/$(am__dirstamp) \ - gdbus/$(DEPDIR)/$(am__dirstamp) -gdbus/watch.lo: gdbus/$(am__dirstamp) gdbus/$(DEPDIR)/$(am__dirstamp) -gdbus/object.lo: gdbus/$(am__dirstamp) gdbus/$(DEPDIR)/$(am__dirstamp) -gdbus/client.lo: gdbus/$(am__dirstamp) gdbus/$(DEPDIR)/$(am__dirstamp) -gdbus/polkit.lo: gdbus/$(am__dirstamp) gdbus/$(DEPDIR)/$(am__dirstamp) -gdbus/libgdbus-internal.la: $(gdbus_libgdbus_internal_la_OBJECTS) $(gdbus_libgdbus_internal_la_DEPENDENCIES) $(EXTRA_gdbus_libgdbus_internal_la_DEPENDENCIES) gdbus/$(am__dirstamp) - $(AM_V_CCLD)$(LINK) $(gdbus_libgdbus_internal_la_OBJECTS) $(gdbus_libgdbus_internal_la_LIBADD) $(LIBS) -plugins/$(am__dirstamp): - @$(MKDIR_P) plugins - @: > plugins/$(am__dirstamp) -plugins/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) plugins/$(DEPDIR) - @: > plugins/$(DEPDIR)/$(am__dirstamp) -plugins/plugins_hh2serial_gps_la-hh2serial-gps.lo: \ - plugins/$(am__dirstamp) plugins/$(DEPDIR)/$(am__dirstamp) -plugins/hh2serial-gps.la: $(plugins_hh2serial_gps_la_OBJECTS) $(plugins_hh2serial_gps_la_DEPENDENCIES) $(EXTRA_plugins_hh2serial_gps_la_DEPENDENCIES) plugins/$(am__dirstamp) - $(AM_V_CCLD)$(plugins_hh2serial_gps_la_LINK) $(am_plugins_hh2serial_gps_la_rpath) $(plugins_hh2serial_gps_la_OBJECTS) $(plugins_hh2serial_gps_la_LIBADD) $(LIBS) -plugins/plugins_iospm_la-iospm.lo: plugins/$(am__dirstamp) \ - plugins/$(DEPDIR)/$(am__dirstamp) -plugins/iospm.la: $(plugins_iospm_la_OBJECTS) $(plugins_iospm_la_DEPENDENCIES) $(EXTRA_plugins_iospm_la_DEPENDENCIES) plugins/$(am__dirstamp) - $(AM_V_CCLD)$(plugins_iospm_la_LINK) $(am_plugins_iospm_la_rpath) $(plugins_iospm_la_OBJECTS) $(plugins_iospm_la_LIBADD) $(LIBS) -plugins/plugins_session_policy_local_la-session_policy_local.lo: \ - plugins/$(am__dirstamp) plugins/$(DEPDIR)/$(am__dirstamp) -plugins/session_policy_local.la: $(plugins_session_policy_local_la_OBJECTS) $(plugins_session_policy_local_la_DEPENDENCIES) $(EXTRA_plugins_session_policy_local_la_DEPENDENCIES) plugins/$(am__dirstamp) - $(AM_V_CCLD)$(plugins_session_policy_local_la_LINK) $(am_plugins_session_policy_local_la_rpath) $(plugins_session_policy_local_la_OBJECTS) $(plugins_session_policy_local_la_LIBADD) $(LIBS) -plugins/plugins_tist_la-tist.lo: plugins/$(am__dirstamp) \ - plugins/$(DEPDIR)/$(am__dirstamp) -plugins/tist.la: $(plugins_tist_la_OBJECTS) $(plugins_tist_la_DEPENDENCIES) $(EXTRA_plugins_tist_la_DEPENDENCIES) plugins/$(am__dirstamp) - $(AM_V_CCLD)$(plugins_tist_la_LINK) $(am_plugins_tist_la_rpath) $(plugins_tist_la_OBJECTS) $(plugins_tist_la_LIBADD) $(LIBS) -scripts/$(am__dirstamp): - @$(MKDIR_P) scripts - @: > scripts/$(am__dirstamp) -scripts/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) scripts/$(DEPDIR) - @: > scripts/$(DEPDIR)/$(am__dirstamp) -scripts/libppp-plugin.lo: scripts/$(am__dirstamp) \ - scripts/$(DEPDIR)/$(am__dirstamp) -scripts/libppp-plugin.la: $(scripts_libppp_plugin_la_OBJECTS) $(scripts_libppp_plugin_la_DEPENDENCIES) $(EXTRA_scripts_libppp_plugin_la_DEPENDENCIES) scripts/$(am__dirstamp) - $(AM_V_CCLD)$(scripts_libppp_plugin_la_LINK) $(am_scripts_libppp_plugin_la_rpath) $(scripts_libppp_plugin_la_OBJECTS) $(scripts_libppp_plugin_la_LIBADD) $(LIBS) -vpn/plugins/$(am__dirstamp): - @$(MKDIR_P) vpn/plugins - @: > vpn/plugins/$(am__dirstamp) -vpn/plugins/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) vpn/plugins/$(DEPDIR) - @: > vpn/plugins/$(DEPDIR)/$(am__dirstamp) -vpn/plugins/vpn_plugins_l2tp_la-vpn.lo: vpn/plugins/$(am__dirstamp) \ - vpn/plugins/$(DEPDIR)/$(am__dirstamp) -vpn/plugins/vpn_plugins_l2tp_la-l2tp.lo: vpn/plugins/$(am__dirstamp) \ - vpn/plugins/$(DEPDIR)/$(am__dirstamp) -vpn/plugins/l2tp.la: $(vpn_plugins_l2tp_la_OBJECTS) $(vpn_plugins_l2tp_la_DEPENDENCIES) $(EXTRA_vpn_plugins_l2tp_la_DEPENDENCIES) vpn/plugins/$(am__dirstamp) - $(AM_V_CCLD)$(vpn_plugins_l2tp_la_LINK) $(am_vpn_plugins_l2tp_la_rpath) $(vpn_plugins_l2tp_la_OBJECTS) $(vpn_plugins_l2tp_la_LIBADD) $(LIBS) -vpn/plugins/vpn_plugins_openconnect_la-vpn.lo: \ - vpn/plugins/$(am__dirstamp) \ - vpn/plugins/$(DEPDIR)/$(am__dirstamp) -vpn/plugins/vpn_plugins_openconnect_la-openconnect.lo: \ - vpn/plugins/$(am__dirstamp) \ - vpn/plugins/$(DEPDIR)/$(am__dirstamp) -vpn/plugins/openconnect.la: $(vpn_plugins_openconnect_la_OBJECTS) $(vpn_plugins_openconnect_la_DEPENDENCIES) $(EXTRA_vpn_plugins_openconnect_la_DEPENDENCIES) vpn/plugins/$(am__dirstamp) - $(AM_V_CCLD)$(vpn_plugins_openconnect_la_LINK) $(am_vpn_plugins_openconnect_la_rpath) $(vpn_plugins_openconnect_la_OBJECTS) $(vpn_plugins_openconnect_la_LIBADD) $(LIBS) -vpn/plugins/vpn_plugins_openvpn_la-vpn.lo: \ - vpn/plugins/$(am__dirstamp) \ - vpn/plugins/$(DEPDIR)/$(am__dirstamp) -vpn/plugins/vpn_plugins_openvpn_la-openvpn.lo: \ - vpn/plugins/$(am__dirstamp) \ - vpn/plugins/$(DEPDIR)/$(am__dirstamp) -vpn/plugins/openvpn.la: $(vpn_plugins_openvpn_la_OBJECTS) $(vpn_plugins_openvpn_la_DEPENDENCIES) $(EXTRA_vpn_plugins_openvpn_la_DEPENDENCIES) vpn/plugins/$(am__dirstamp) - $(AM_V_CCLD)$(vpn_plugins_openvpn_la_LINK) $(am_vpn_plugins_openvpn_la_rpath) $(vpn_plugins_openvpn_la_OBJECTS) $(vpn_plugins_openvpn_la_LIBADD) $(LIBS) -vpn/plugins/vpn_plugins_pptp_la-vpn.lo: vpn/plugins/$(am__dirstamp) \ - vpn/plugins/$(DEPDIR)/$(am__dirstamp) -vpn/plugins/vpn_plugins_pptp_la-pptp.lo: vpn/plugins/$(am__dirstamp) \ - vpn/plugins/$(DEPDIR)/$(am__dirstamp) -vpn/plugins/pptp.la: $(vpn_plugins_pptp_la_OBJECTS) $(vpn_plugins_pptp_la_DEPENDENCIES) $(EXTRA_vpn_plugins_pptp_la_DEPENDENCIES) vpn/plugins/$(am__dirstamp) - $(AM_V_CCLD)$(vpn_plugins_pptp_la_LINK) $(am_vpn_plugins_pptp_la_rpath) $(vpn_plugins_pptp_la_OBJECTS) $(vpn_plugins_pptp_la_LIBADD) $(LIBS) -vpn/plugins/vpn_plugins_vpnc_la-vpn.lo: vpn/plugins/$(am__dirstamp) \ - vpn/plugins/$(DEPDIR)/$(am__dirstamp) -vpn/plugins/vpn_plugins_vpnc_la-vpnc.lo: vpn/plugins/$(am__dirstamp) \ - vpn/plugins/$(DEPDIR)/$(am__dirstamp) -vpn/plugins/vpnc.la: $(vpn_plugins_vpnc_la_OBJECTS) $(vpn_plugins_vpnc_la_DEPENDENCIES) $(EXTRA_vpn_plugins_vpnc_la_DEPENDENCIES) vpn/plugins/$(am__dirstamp) - $(AM_V_CCLD)$(vpn_plugins_vpnc_la_LINK) $(am_vpn_plugins_vpnc_la_rpath) $(vpn_plugins_vpnc_la_OBJECTS) $(vpn_plugins_vpnc_la_LIBADD) $(LIBS) -install-binPROGRAMS: $(bin_PROGRAMS) - @$(NORMAL_INSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(bindir)" || 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; \ - then echo "$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ - -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ - sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) files[d] = files[d] " " $$1; \ - else { print "f", $$3 "/" $$4, $$1; } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ - $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-binPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' `; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(bindir)" && rm -f $$files - -clean-binPROGRAMS: - @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -clean-noinstPROGRAMS: - @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list -install-sbinPROGRAMS: $(sbin_PROGRAMS) - @$(NORMAL_INSTALL) - @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; \ - then echo "$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ - -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ - sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) files[d] = files[d] " " $$1; \ - else { print "f", $$3 "/" $$4, $$1; } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(sbindir)$$dir'"; \ - $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(sbindir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-sbinPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' `; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(sbindir)" && rm -f $$files - -clean-sbinPROGRAMS: - @list='$(sbin_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list -install-scriptPROGRAMS: $(script_PROGRAMS) - @$(NORMAL_INSTALL) - @list='$(script_PROGRAMS)'; test -n "$(scriptdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(scriptdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(scriptdir)" || 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; \ - then echo "$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ - -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ - sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) files[d] = files[d] " " $$1; \ - else { print "f", $$3 "/" $$4, $$1; } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(scriptdir)$$dir'"; \ - $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(scriptdir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-scriptPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(script_PROGRAMS)'; test -n "$(scriptdir)" || list=; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' `; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(scriptdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(scriptdir)" && rm -f $$files - -clean-scriptPROGRAMS: - @list='$(script_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list -client/$(am__dirstamp): - @$(MKDIR_P) client - @: > client/$(am__dirstamp) -client/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) client/$(DEPDIR) - @: > client/$(DEPDIR)/$(am__dirstamp) -client/dbus_helpers.$(OBJEXT): client/$(am__dirstamp) \ - client/$(DEPDIR)/$(am__dirstamp) -client/services.$(OBJEXT): client/$(am__dirstamp) \ - client/$(DEPDIR)/$(am__dirstamp) -client/commands.$(OBJEXT): client/$(am__dirstamp) \ - client/$(DEPDIR)/$(am__dirstamp) -client/input.$(OBJEXT): client/$(am__dirstamp) \ - client/$(DEPDIR)/$(am__dirstamp) -client/agent.$(OBJEXT): client/$(am__dirstamp) \ - client/$(DEPDIR)/$(am__dirstamp) -client/peers.$(OBJEXT): client/$(am__dirstamp) \ - client/$(DEPDIR)/$(am__dirstamp) -client/vpnconnections.$(OBJEXT): client/$(am__dirstamp) \ - client/$(DEPDIR)/$(am__dirstamp) -client/main.$(OBJEXT): client/$(am__dirstamp) \ - client/$(DEPDIR)/$(am__dirstamp) -client/connmanctl$(EXEEXT): $(client_connmanctl_OBJECTS) $(client_connmanctl_DEPENDENCIES) $(EXTRA_client_connmanctl_DEPENDENCIES) client/$(am__dirstamp) - @rm -f client/connmanctl$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(client_connmanctl_OBJECTS) $(client_connmanctl_LDADD) $(LIBS) -scripts/openconnect-script.$(OBJEXT): scripts/$(am__dirstamp) \ - scripts/$(DEPDIR)/$(am__dirstamp) -scripts/openconnect-script$(EXEEXT): $(scripts_openconnect_script_OBJECTS) $(scripts_openconnect_script_DEPENDENCIES) $(EXTRA_scripts_openconnect_script_DEPENDENCIES) scripts/$(am__dirstamp) - @rm -f scripts/openconnect-script$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(scripts_openconnect_script_OBJECTS) $(scripts_openconnect_script_LDADD) $(LIBS) -scripts/openvpn-script.$(OBJEXT): scripts/$(am__dirstamp) \ - scripts/$(DEPDIR)/$(am__dirstamp) -scripts/openvpn-script$(EXEEXT): $(scripts_openvpn_script_OBJECTS) $(scripts_openvpn_script_DEPENDENCIES) $(EXTRA_scripts_openvpn_script_DEPENDENCIES) scripts/$(am__dirstamp) - @rm -f scripts/openvpn-script$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(scripts_openvpn_script_OBJECTS) $(scripts_openvpn_script_LDADD) $(LIBS) -gdhcp/$(am__dirstamp): - @$(MKDIR_P) gdhcp - @: > gdhcp/$(am__dirstamp) -gdhcp/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) gdhcp/$(DEPDIR) - @: > gdhcp/$(DEPDIR)/$(am__dirstamp) -gdhcp/src_connmand-common.$(OBJEXT): gdhcp/$(am__dirstamp) \ - gdhcp/$(DEPDIR)/$(am__dirstamp) -gdhcp/src_connmand-client.$(OBJEXT): gdhcp/$(am__dirstamp) \ - gdhcp/$(DEPDIR)/$(am__dirstamp) -gdhcp/src_connmand-server.$(OBJEXT): gdhcp/$(am__dirstamp) \ - gdhcp/$(DEPDIR)/$(am__dirstamp) -gdhcp/src_connmand-ipv4ll.$(OBJEXT): gdhcp/$(am__dirstamp) \ - gdhcp/$(DEPDIR)/$(am__dirstamp) -gweb/$(am__dirstamp): - @$(MKDIR_P) gweb - @: > gweb/$(am__dirstamp) -gweb/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) gweb/$(DEPDIR) - @: > gweb/$(DEPDIR)/$(am__dirstamp) -gweb/src_connmand-gweb.$(OBJEXT): gweb/$(am__dirstamp) \ - gweb/$(DEPDIR)/$(am__dirstamp) -gweb/src_connmand-gresolv.$(OBJEXT): gweb/$(am__dirstamp) \ - gweb/$(DEPDIR)/$(am__dirstamp) -gweb/src_connmand-giognutls.$(OBJEXT): gweb/$(am__dirstamp) \ - gweb/$(DEPDIR)/$(am__dirstamp) -gweb/src_connmand-gionotls.$(OBJEXT): gweb/$(am__dirstamp) \ - gweb/$(DEPDIR)/$(am__dirstamp) -plugins/src_connmand-loopback.$(OBJEXT): plugins/$(am__dirstamp) \ - plugins/$(DEPDIR)/$(am__dirstamp) -plugins/src_connmand-ethernet.$(OBJEXT): plugins/$(am__dirstamp) \ - plugins/$(DEPDIR)/$(am__dirstamp) -plugins/src_connmand-gadget.$(OBJEXT): plugins/$(am__dirstamp) \ - plugins/$(DEPDIR)/$(am__dirstamp) -plugins/src_connmand-wifi.$(OBJEXT): plugins/$(am__dirstamp) \ - plugins/$(DEPDIR)/$(am__dirstamp) -gsupplicant/$(am__dirstamp): - @$(MKDIR_P) gsupplicant - @: > gsupplicant/$(am__dirstamp) -gsupplicant/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) gsupplicant/$(DEPDIR) - @: > gsupplicant/$(DEPDIR)/$(am__dirstamp) -gsupplicant/src_connmand-supplicant.$(OBJEXT): \ - gsupplicant/$(am__dirstamp) \ - gsupplicant/$(DEPDIR)/$(am__dirstamp) -gsupplicant/src_connmand-dbus.$(OBJEXT): gsupplicant/$(am__dirstamp) \ - gsupplicant/$(DEPDIR)/$(am__dirstamp) -plugins/src_connmand-bluetooth_legacy.$(OBJEXT): \ - plugins/$(am__dirstamp) plugins/$(DEPDIR)/$(am__dirstamp) -plugins/src_connmand-bluetooth.$(OBJEXT): plugins/$(am__dirstamp) \ - plugins/$(DEPDIR)/$(am__dirstamp) -plugins/src_connmand-hh2serial-gps.$(OBJEXT): plugins/$(am__dirstamp) \ - plugins/$(DEPDIR)/$(am__dirstamp) -plugins/src_connmand-ofono.$(OBJEXT): plugins/$(am__dirstamp) \ - plugins/$(DEPDIR)/$(am__dirstamp) -plugins/src_connmand-dundee.$(OBJEXT): plugins/$(am__dirstamp) \ - plugins/$(DEPDIR)/$(am__dirstamp) -plugins/src_connmand-vpn.$(OBJEXT): plugins/$(am__dirstamp) \ - plugins/$(DEPDIR)/$(am__dirstamp) -plugins/src_connmand-pacrunner.$(OBJEXT): plugins/$(am__dirstamp) \ - plugins/$(DEPDIR)/$(am__dirstamp) -plugins/src_connmand-polkit.$(OBJEXT): plugins/$(am__dirstamp) \ - plugins/$(DEPDIR)/$(am__dirstamp) -plugins/src_connmand-nmcompat.$(OBJEXT): plugins/$(am__dirstamp) \ - plugins/$(DEPDIR)/$(am__dirstamp) -plugins/src_connmand-tist.$(OBJEXT): plugins/$(am__dirstamp) \ - plugins/$(DEPDIR)/$(am__dirstamp) -plugins/src_connmand-session_policy_local.$(OBJEXT): \ - plugins/$(am__dirstamp) plugins/$(DEPDIR)/$(am__dirstamp) -plugins/src_connmand-neard.$(OBJEXT): plugins/$(am__dirstamp) \ - plugins/$(DEPDIR)/$(am__dirstamp) -src/shared/$(am__dirstamp): - @$(MKDIR_P) src/shared - @: > src/shared/$(am__dirstamp) -src/shared/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) src/shared/$(DEPDIR) - @: > src/shared/$(DEPDIR)/$(am__dirstamp) -src/shared/src_connmand-util.$(OBJEXT): src/shared/$(am__dirstamp) \ - src/shared/$(DEPDIR)/$(am__dirstamp) -src/shared/src_connmand-netlink.$(OBJEXT): src/shared/$(am__dirstamp) \ - src/shared/$(DEPDIR)/$(am__dirstamp) -src/$(am__dirstamp): - @$(MKDIR_P) src - @: > src/$(am__dirstamp) -src/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) src/$(DEPDIR) - @: > src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-main.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-log.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-error.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-plugin.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-task.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-device.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-network.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-connection.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-manager.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-service.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-clock.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-timezone.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-agent-connman.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-agent.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-notifier.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-provider.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-resolver.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-ipconfig.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-detect.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-inet.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-dhcp.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-dhcpv6.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-rtnl.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-proxy.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-utsname.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-timeserver.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-rfkill.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-storage.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-dbus.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-config.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-technology.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-counter.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-ntp.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-session.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-tethering.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-wpad.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-wispr.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-stats.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-iptables.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-dnsproxy.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-6to4.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-ippool.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-bridge.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-nat.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-ipaddress.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-inotify.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-firewall.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-ipv6pd.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-peer.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-peer_service.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-machine.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/src_connmand-util.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/connmand$(EXEEXT): $(src_connmand_OBJECTS) $(src_connmand_DEPENDENCIES) $(EXTRA_src_connmand_DEPENDENCIES) src/$(am__dirstamp) - @rm -f src/connmand$(EXEEXT) - $(AM_V_CCLD)$(src_connmand_LINK) $(src_connmand_OBJECTS) $(src_connmand_LDADD) $(LIBS) -tools/$(am__dirstamp): - @$(MKDIR_P) tools - @: > tools/$(am__dirstamp) -tools/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) tools/$(DEPDIR) - @: > tools/$(DEPDIR)/$(am__dirstamp) -tools/addr-test.$(OBJEXT): tools/$(am__dirstamp) \ - tools/$(DEPDIR)/$(am__dirstamp) -tools/addr-test$(EXEEXT): $(tools_addr_test_OBJECTS) $(tools_addr_test_DEPENDENCIES) $(EXTRA_tools_addr_test_DEPENDENCIES) tools/$(am__dirstamp) - @rm -f tools/addr-test$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tools_addr_test_OBJECTS) $(tools_addr_test_LDADD) $(LIBS) -tools/dbus-test.$(OBJEXT): tools/$(am__dirstamp) \ - tools/$(DEPDIR)/$(am__dirstamp) -tools/dbus-test$(EXEEXT): $(tools_dbus_test_OBJECTS) $(tools_dbus_test_DEPENDENCIES) $(EXTRA_tools_dbus_test_DEPENDENCIES) tools/$(am__dirstamp) - @rm -f tools/dbus-test$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tools_dbus_test_OBJECTS) $(tools_dbus_test_LDADD) $(LIBS) -gdhcp/common.$(OBJEXT): gdhcp/$(am__dirstamp) \ - gdhcp/$(DEPDIR)/$(am__dirstamp) -gdhcp/client.$(OBJEXT): gdhcp/$(am__dirstamp) \ - gdhcp/$(DEPDIR)/$(am__dirstamp) -gdhcp/server.$(OBJEXT): gdhcp/$(am__dirstamp) \ - gdhcp/$(DEPDIR)/$(am__dirstamp) -gdhcp/ipv4ll.$(OBJEXT): gdhcp/$(am__dirstamp) \ - gdhcp/$(DEPDIR)/$(am__dirstamp) -tools/dhcp-server-test.$(OBJEXT): tools/$(am__dirstamp) \ - tools/$(DEPDIR)/$(am__dirstamp) -tools/dhcp-server-test$(EXEEXT): $(tools_dhcp_server_test_OBJECTS) $(tools_dhcp_server_test_DEPENDENCIES) $(EXTRA_tools_dhcp_server_test_DEPENDENCIES) tools/$(am__dirstamp) - @rm -f tools/dhcp-server-test$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tools_dhcp_server_test_OBJECTS) $(tools_dhcp_server_test_LDADD) $(LIBS) -tools/dhcp-test.$(OBJEXT): tools/$(am__dirstamp) \ - tools/$(DEPDIR)/$(am__dirstamp) -tools/dhcp-test$(EXEEXT): $(tools_dhcp_test_OBJECTS) $(tools_dhcp_test_DEPENDENCIES) $(EXTRA_tools_dhcp_test_DEPENDENCIES) tools/$(am__dirstamp) - @rm -f tools/dhcp-test$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tools_dhcp_test_OBJECTS) $(tools_dhcp_test_LDADD) $(LIBS) -tools/dnsproxy-test.$(OBJEXT): tools/$(am__dirstamp) \ - tools/$(DEPDIR)/$(am__dirstamp) -tools/dnsproxy-test$(EXEEXT): $(tools_dnsproxy_test_OBJECTS) $(tools_dnsproxy_test_DEPENDENCIES) $(EXTRA_tools_dnsproxy_test_DEPENDENCIES) tools/$(am__dirstamp) - @rm -f tools/dnsproxy-test$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tools_dnsproxy_test_OBJECTS) $(tools_dnsproxy_test_LDADD) $(LIBS) -src/log.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) -src/iptables.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -tools/iptables-test.$(OBJEXT): tools/$(am__dirstamp) \ - tools/$(DEPDIR)/$(am__dirstamp) -tools/iptables-test$(EXEEXT): $(tools_iptables_test_OBJECTS) $(tools_iptables_test_DEPENDENCIES) $(EXTRA_tools_iptables_test_DEPENDENCIES) tools/$(am__dirstamp) - @rm -f tools/iptables-test$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tools_iptables_test_OBJECTS) $(tools_iptables_test_LDADD) $(LIBS) -src/tools_iptables_unit-log.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/tools_iptables_unit-iptables.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/tools_iptables_unit-firewall.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/tools_iptables_unit-nat.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -tools/tools_iptables_unit-iptables-unit.$(OBJEXT): \ - tools/$(am__dirstamp) tools/$(DEPDIR)/$(am__dirstamp) -tools/iptables-unit$(EXEEXT): $(tools_iptables_unit_OBJECTS) $(tools_iptables_unit_DEPENDENCIES) $(EXTRA_tools_iptables_unit_DEPENDENCIES) tools/$(am__dirstamp) - @rm -f tools/iptables-unit$(EXEEXT) - $(AM_V_CCLD)$(tools_iptables_unit_LINK) $(tools_iptables_unit_OBJECTS) $(tools_iptables_unit_LDADD) $(LIBS) -src/shared/util.$(OBJEXT): src/shared/$(am__dirstamp) \ - src/shared/$(DEPDIR)/$(am__dirstamp) -src/shared/netlink.$(OBJEXT): src/shared/$(am__dirstamp) \ - src/shared/$(DEPDIR)/$(am__dirstamp) -tools/netlink-test.$(OBJEXT): tools/$(am__dirstamp) \ - tools/$(DEPDIR)/$(am__dirstamp) -tools/netlink-test$(EXEEXT): $(tools_netlink_test_OBJECTS) $(tools_netlink_test_DEPENDENCIES) $(EXTRA_tools_netlink_test_DEPENDENCIES) tools/$(am__dirstamp) - @rm -f tools/netlink-test$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tools_netlink_test_OBJECTS) $(tools_netlink_test_LDADD) $(LIBS) -tools/polkit-test.$(OBJEXT): tools/$(am__dirstamp) \ - tools/$(DEPDIR)/$(am__dirstamp) -tools/polkit-test$(EXEEXT): $(tools_polkit_test_OBJECTS) $(tools_polkit_test_DEPENDENCIES) $(EXTRA_tools_polkit_test_DEPENDENCIES) tools/$(am__dirstamp) - @rm -f tools/polkit-test$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tools_polkit_test_OBJECTS) $(tools_polkit_test_LDADD) $(LIBS) -tools/private-network-test.$(OBJEXT): tools/$(am__dirstamp) \ - tools/$(DEPDIR)/$(am__dirstamp) -tools/private-network-test$(EXEEXT): $(tools_private_network_test_OBJECTS) $(tools_private_network_test_DEPENDENCIES) $(EXTRA_tools_private_network_test_DEPENDENCIES) tools/$(am__dirstamp) - @rm -f tools/private-network-test$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tools_private_network_test_OBJECTS) $(tools_private_network_test_LDADD) $(LIBS) -gweb/gresolv.$(OBJEXT): gweb/$(am__dirstamp) \ - gweb/$(DEPDIR)/$(am__dirstamp) -tools/resolv-test.$(OBJEXT): tools/$(am__dirstamp) \ - tools/$(DEPDIR)/$(am__dirstamp) -tools/resolv-test$(EXEEXT): $(tools_resolv_test_OBJECTS) $(tools_resolv_test_DEPENDENCIES) $(EXTRA_tools_resolv_test_DEPENDENCIES) tools/$(am__dirstamp) - @rm -f tools/resolv-test$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tools_resolv_test_OBJECTS) $(tools_resolv_test_LDADD) $(LIBS) -src/dbus.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) -src/error.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) -tools/session-test.$(OBJEXT): tools/$(am__dirstamp) \ - tools/$(DEPDIR)/$(am__dirstamp) -tools/session-utils.$(OBJEXT): tools/$(am__dirstamp) \ - tools/$(DEPDIR)/$(am__dirstamp) -tools/manager-api.$(OBJEXT): tools/$(am__dirstamp) \ - tools/$(DEPDIR)/$(am__dirstamp) -tools/session-api.$(OBJEXT): tools/$(am__dirstamp) \ - tools/$(DEPDIR)/$(am__dirstamp) -tools/session-test$(EXEEXT): $(tools_session_test_OBJECTS) $(tools_session_test_DEPENDENCIES) $(EXTRA_tools_session_test_DEPENDENCIES) tools/$(am__dirstamp) - @rm -f tools/session-test$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tools_session_test_OBJECTS) $(tools_session_test_LDADD) $(LIBS) -tools/stats-tool.$(OBJEXT): tools/$(am__dirstamp) \ - tools/$(DEPDIR)/$(am__dirstamp) -tools/stats-tool$(EXEEXT): $(tools_stats_tool_OBJECTS) $(tools_stats_tool_DEPENDENCIES) $(EXTRA_tools_stats_tool_DEPENDENCIES) tools/$(am__dirstamp) - @rm -f tools/stats-tool$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tools_stats_tool_OBJECTS) $(tools_stats_tool_LDADD) $(LIBS) -tools/supplicant-test.$(OBJEXT): tools/$(am__dirstamp) \ - tools/$(DEPDIR)/$(am__dirstamp) -tools/supplicant-dbus.$(OBJEXT): tools/$(am__dirstamp) \ - tools/$(DEPDIR)/$(am__dirstamp) -tools/supplicant.$(OBJEXT): tools/$(am__dirstamp) \ - tools/$(DEPDIR)/$(am__dirstamp) -tools/supplicant-test$(EXEEXT): $(tools_supplicant_test_OBJECTS) $(tools_supplicant_test_DEPENDENCIES) $(EXTRA_tools_supplicant_test_DEPENDENCIES) tools/$(am__dirstamp) - @rm -f tools/supplicant-test$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tools_supplicant_test_OBJECTS) $(tools_supplicant_test_LDADD) $(LIBS) -tools/tap-test.$(OBJEXT): tools/$(am__dirstamp) \ - tools/$(DEPDIR)/$(am__dirstamp) -tools/tap-test$(EXEEXT): $(tools_tap_test_OBJECTS) $(tools_tap_test_DEPENDENCIES) $(EXTRA_tools_tap_test_DEPENDENCIES) tools/$(am__dirstamp) - @rm -f tools/tap-test$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tools_tap_test_OBJECTS) $(tools_tap_test_LDADD) $(LIBS) -gweb/gweb.$(OBJEXT): gweb/$(am__dirstamp) \ - gweb/$(DEPDIR)/$(am__dirstamp) -gweb/giognutls.$(OBJEXT): gweb/$(am__dirstamp) \ - gweb/$(DEPDIR)/$(am__dirstamp) -gweb/gionotls.$(OBJEXT): gweb/$(am__dirstamp) \ - gweb/$(DEPDIR)/$(am__dirstamp) -tools/web-test.$(OBJEXT): tools/$(am__dirstamp) \ - tools/$(DEPDIR)/$(am__dirstamp) -tools/web-test$(EXEEXT): $(tools_web_test_OBJECTS) $(tools_web_test_DEPENDENCIES) $(EXTRA_tools_web_test_DEPENDENCIES) tools/$(am__dirstamp) - @rm -f tools/web-test$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tools_web_test_OBJECTS) $(tools_web_test_LDADD) $(LIBS) -tools/wispr.$(OBJEXT): tools/$(am__dirstamp) \ - tools/$(DEPDIR)/$(am__dirstamp) -tools/wispr$(EXEEXT): $(tools_wispr_OBJECTS) $(tools_wispr_DEPENDENCIES) $(EXTRA_tools_wispr_DEPENDENCIES) tools/$(am__dirstamp) - @rm -f tools/wispr$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tools_wispr_OBJECTS) $(tools_wispr_LDADD) $(LIBS) -tools/wpad-test.$(OBJEXT): tools/$(am__dirstamp) \ - tools/$(DEPDIR)/$(am__dirstamp) -tools/wpad-test$(EXEEXT): $(tools_wpad_test_OBJECTS) $(tools_wpad_test_DEPENDENCIES) $(EXTRA_tools_wpad_test_DEPENDENCIES) tools/$(am__dirstamp) - @rm -f tools/wpad-test$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tools_wpad_test_OBJECTS) $(tools_wpad_test_LDADD) $(LIBS) -src/ippool.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -unit/$(am__dirstamp): - @$(MKDIR_P) unit - @: > unit/$(am__dirstamp) -unit/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) unit/$(DEPDIR) - @: > unit/$(DEPDIR)/$(am__dirstamp) -unit/test-ippool.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) -unit/test-ippool$(EXEEXT): $(unit_test_ippool_OBJECTS) $(unit_test_ippool_DEPENDENCIES) $(EXTRA_unit_test_ippool_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/test-ippool$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(unit_test_ippool_OBJECTS) $(unit_test_ippool_LDADD) $(LIBS) -vpn/plugins/vpn_connman_vpnd-openconnect.$(OBJEXT): \ - vpn/plugins/$(am__dirstamp) \ - vpn/plugins/$(DEPDIR)/$(am__dirstamp) -vpn/plugins/vpn_connman_vpnd-openvpn.$(OBJEXT): \ - vpn/plugins/$(am__dirstamp) \ - vpn/plugins/$(DEPDIR)/$(am__dirstamp) -vpn/plugins/vpn_connman_vpnd-vpnc.$(OBJEXT): \ - vpn/plugins/$(am__dirstamp) \ - vpn/plugins/$(DEPDIR)/$(am__dirstamp) -vpn/plugins/vpn_connman_vpnd-l2tp.$(OBJEXT): \ - vpn/plugins/$(am__dirstamp) \ - vpn/plugins/$(DEPDIR)/$(am__dirstamp) -vpn/plugins/vpn_connman_vpnd-pptp.$(OBJEXT): \ - vpn/plugins/$(am__dirstamp) \ - vpn/plugins/$(DEPDIR)/$(am__dirstamp) -vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT): \ - vpn/plugins/$(am__dirstamp) \ - vpn/plugins/$(DEPDIR)/$(am__dirstamp) -gweb/vpn_connman_vpnd-gweb.$(OBJEXT): gweb/$(am__dirstamp) \ - gweb/$(DEPDIR)/$(am__dirstamp) -gweb/vpn_connman_vpnd-gresolv.$(OBJEXT): gweb/$(am__dirstamp) \ - gweb/$(DEPDIR)/$(am__dirstamp) -gweb/vpn_connman_vpnd-giognutls.$(OBJEXT): gweb/$(am__dirstamp) \ - gweb/$(DEPDIR)/$(am__dirstamp) -gweb/vpn_connman_vpnd-gionotls.$(OBJEXT): gweb/$(am__dirstamp) \ - gweb/$(DEPDIR)/$(am__dirstamp) -vpn/$(am__dirstamp): - @$(MKDIR_P) vpn - @: > vpn/$(am__dirstamp) -vpn/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) vpn/$(DEPDIR) - @: > vpn/$(DEPDIR)/$(am__dirstamp) -vpn/vpn_connman_vpnd-main.$(OBJEXT): vpn/$(am__dirstamp) \ - vpn/$(DEPDIR)/$(am__dirstamp) -src/vpn_connman_vpnd-log.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/vpn_connman_vpnd-error.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/vpn_connman_vpnd-plugin.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/vpn_connman_vpnd-task.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -vpn/vpn_connman_vpnd-vpn-manager.$(OBJEXT): vpn/$(am__dirstamp) \ - vpn/$(DEPDIR)/$(am__dirstamp) -vpn/vpn_connman_vpnd-vpn-provider.$(OBJEXT): vpn/$(am__dirstamp) \ - vpn/$(DEPDIR)/$(am__dirstamp) -vpn/vpn_connman_vpnd-vpn-ipconfig.$(OBJEXT): vpn/$(am__dirstamp) \ - vpn/$(DEPDIR)/$(am__dirstamp) -src/vpn_connman_vpnd-inet.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -vpn/vpn_connman_vpnd-vpn-rtnl.$(OBJEXT): vpn/$(am__dirstamp) \ - vpn/$(DEPDIR)/$(am__dirstamp) -src/vpn_connman_vpnd-dbus.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/vpn_connman_vpnd-storage.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/vpn_connman_vpnd-ipaddress.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/vpn_connman_vpnd-agent.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -vpn/vpn_connman_vpnd-vpn-agent.$(OBJEXT): vpn/$(am__dirstamp) \ - vpn/$(DEPDIR)/$(am__dirstamp) -src/vpn_connman_vpnd-inotify.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -vpn/vpn_connman_vpnd-vpn-config.$(OBJEXT): vpn/$(am__dirstamp) \ - vpn/$(DEPDIR)/$(am__dirstamp) -vpn/connman-vpnd$(EXEEXT): $(vpn_connman_vpnd_OBJECTS) $(vpn_connman_vpnd_DEPENDENCIES) $(EXTRA_vpn_connman_vpnd_DEPENDENCIES) vpn/$(am__dirstamp) - @rm -f vpn/connman-vpnd$(EXEEXT) - $(AM_V_CCLD)$(vpn_connman_vpnd_LINK) $(vpn_connman_vpnd_OBJECTS) $(vpn_connman_vpnd_LDADD) $(LIBS) -install-testSCRIPTS: $(test_SCRIPTS) - @$(NORMAL_INSTALL) - @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; \ - done | \ - sed -e 'p;s,.*/,,;n' \ - -e 'h;s|.*|.|' \ - -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) { files[d] = files[d] " " $$1; \ - if (++n[d] == $(am__install_max)) { \ - print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ - else { print "f", d "/" $$4, $$1 } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(testdir)$$dir'"; \ - $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(testdir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-testSCRIPTS: - @$(NORMAL_UNINSTALL) - @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) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -rm -f client/agent.$(OBJEXT) - -rm -f client/commands.$(OBJEXT) - -rm -f client/dbus_helpers.$(OBJEXT) - -rm -f client/input.$(OBJEXT) - -rm -f client/main.$(OBJEXT) - -rm -f client/peers.$(OBJEXT) - -rm -f client/services.$(OBJEXT) - -rm -f client/vpnconnections.$(OBJEXT) - -rm -f gdbus/client.$(OBJEXT) - -rm -f gdbus/client.lo - -rm -f gdbus/mainloop.$(OBJEXT) - -rm -f gdbus/mainloop.lo - -rm -f gdbus/object.$(OBJEXT) - -rm -f gdbus/object.lo - -rm -f gdbus/polkit.$(OBJEXT) - -rm -f gdbus/polkit.lo - -rm -f gdbus/watch.$(OBJEXT) - -rm -f gdbus/watch.lo - -rm -f gdhcp/client.$(OBJEXT) - -rm -f gdhcp/common.$(OBJEXT) - -rm -f gdhcp/ipv4ll.$(OBJEXT) - -rm -f gdhcp/server.$(OBJEXT) - -rm -f gdhcp/src_connmand-client.$(OBJEXT) - -rm -f gdhcp/src_connmand-common.$(OBJEXT) - -rm -f gdhcp/src_connmand-ipv4ll.$(OBJEXT) - -rm -f gdhcp/src_connmand-server.$(OBJEXT) - -rm -f gsupplicant/src_connmand-dbus.$(OBJEXT) - -rm -f gsupplicant/src_connmand-supplicant.$(OBJEXT) - -rm -f gweb/giognutls.$(OBJEXT) - -rm -f gweb/gionotls.$(OBJEXT) - -rm -f gweb/gresolv.$(OBJEXT) - -rm -f gweb/gweb.$(OBJEXT) - -rm -f gweb/src_connmand-giognutls.$(OBJEXT) - -rm -f gweb/src_connmand-gionotls.$(OBJEXT) - -rm -f gweb/src_connmand-gresolv.$(OBJEXT) - -rm -f gweb/src_connmand-gweb.$(OBJEXT) - -rm -f gweb/vpn_connman_vpnd-giognutls.$(OBJEXT) - -rm -f gweb/vpn_connman_vpnd-gionotls.$(OBJEXT) - -rm -f gweb/vpn_connman_vpnd-gresolv.$(OBJEXT) - -rm -f gweb/vpn_connman_vpnd-gweb.$(OBJEXT) - -rm -f plugins/plugins_hh2serial_gps_la-hh2serial-gps.$(OBJEXT) - -rm -f plugins/plugins_hh2serial_gps_la-hh2serial-gps.lo - -rm -f plugins/plugins_iospm_la-iospm.$(OBJEXT) - -rm -f plugins/plugins_iospm_la-iospm.lo - -rm -f plugins/plugins_session_policy_local_la-session_policy_local.$(OBJEXT) - -rm -f plugins/plugins_session_policy_local_la-session_policy_local.lo - -rm -f plugins/plugins_tist_la-tist.$(OBJEXT) - -rm -f plugins/plugins_tist_la-tist.lo - -rm -f plugins/src_connmand-bluetooth.$(OBJEXT) - -rm -f plugins/src_connmand-bluetooth_legacy.$(OBJEXT) - -rm -f plugins/src_connmand-dundee.$(OBJEXT) - -rm -f plugins/src_connmand-ethernet.$(OBJEXT) - -rm -f plugins/src_connmand-gadget.$(OBJEXT) - -rm -f plugins/src_connmand-hh2serial-gps.$(OBJEXT) - -rm -f plugins/src_connmand-loopback.$(OBJEXT) - -rm -f plugins/src_connmand-neard.$(OBJEXT) - -rm -f plugins/src_connmand-nmcompat.$(OBJEXT) - -rm -f plugins/src_connmand-ofono.$(OBJEXT) - -rm -f plugins/src_connmand-pacrunner.$(OBJEXT) - -rm -f plugins/src_connmand-polkit.$(OBJEXT) - -rm -f plugins/src_connmand-session_policy_local.$(OBJEXT) - -rm -f plugins/src_connmand-tist.$(OBJEXT) - -rm -f plugins/src_connmand-vpn.$(OBJEXT) - -rm -f plugins/src_connmand-wifi.$(OBJEXT) - -rm -f scripts/libppp-plugin.$(OBJEXT) - -rm -f scripts/libppp-plugin.lo - -rm -f scripts/openconnect-script.$(OBJEXT) - -rm -f scripts/openvpn-script.$(OBJEXT) - -rm -f src/dbus.$(OBJEXT) - -rm -f src/error.$(OBJEXT) - -rm -f src/ippool.$(OBJEXT) - -rm -f src/iptables.$(OBJEXT) - -rm -f src/log.$(OBJEXT) - -rm -f src/shared/netlink.$(OBJEXT) - -rm -f src/shared/src_connmand-netlink.$(OBJEXT) - -rm -f src/shared/src_connmand-util.$(OBJEXT) - -rm -f src/shared/util.$(OBJEXT) - -rm -f src/src_connmand-6to4.$(OBJEXT) - -rm -f src/src_connmand-agent-connman.$(OBJEXT) - -rm -f src/src_connmand-agent.$(OBJEXT) - -rm -f src/src_connmand-bridge.$(OBJEXT) - -rm -f src/src_connmand-clock.$(OBJEXT) - -rm -f src/src_connmand-config.$(OBJEXT) - -rm -f src/src_connmand-connection.$(OBJEXT) - -rm -f src/src_connmand-counter.$(OBJEXT) - -rm -f src/src_connmand-dbus.$(OBJEXT) - -rm -f src/src_connmand-detect.$(OBJEXT) - -rm -f src/src_connmand-device.$(OBJEXT) - -rm -f src/src_connmand-dhcp.$(OBJEXT) - -rm -f src/src_connmand-dhcpv6.$(OBJEXT) - -rm -f src/src_connmand-dnsproxy.$(OBJEXT) - -rm -f src/src_connmand-error.$(OBJEXT) - -rm -f src/src_connmand-firewall.$(OBJEXT) - -rm -f src/src_connmand-inet.$(OBJEXT) - -rm -f src/src_connmand-inotify.$(OBJEXT) - -rm -f src/src_connmand-ipaddress.$(OBJEXT) - -rm -f src/src_connmand-ipconfig.$(OBJEXT) - -rm -f src/src_connmand-ippool.$(OBJEXT) - -rm -f src/src_connmand-iptables.$(OBJEXT) - -rm -f src/src_connmand-ipv6pd.$(OBJEXT) - -rm -f src/src_connmand-log.$(OBJEXT) - -rm -f src/src_connmand-machine.$(OBJEXT) - -rm -f src/src_connmand-main.$(OBJEXT) - -rm -f src/src_connmand-manager.$(OBJEXT) - -rm -f src/src_connmand-nat.$(OBJEXT) - -rm -f src/src_connmand-network.$(OBJEXT) - -rm -f src/src_connmand-notifier.$(OBJEXT) - -rm -f src/src_connmand-ntp.$(OBJEXT) - -rm -f src/src_connmand-peer.$(OBJEXT) - -rm -f src/src_connmand-peer_service.$(OBJEXT) - -rm -f src/src_connmand-plugin.$(OBJEXT) - -rm -f src/src_connmand-provider.$(OBJEXT) - -rm -f src/src_connmand-proxy.$(OBJEXT) - -rm -f src/src_connmand-resolver.$(OBJEXT) - -rm -f src/src_connmand-rfkill.$(OBJEXT) - -rm -f src/src_connmand-rtnl.$(OBJEXT) - -rm -f src/src_connmand-service.$(OBJEXT) - -rm -f src/src_connmand-session.$(OBJEXT) - -rm -f src/src_connmand-stats.$(OBJEXT) - -rm -f src/src_connmand-storage.$(OBJEXT) - -rm -f src/src_connmand-task.$(OBJEXT) - -rm -f src/src_connmand-technology.$(OBJEXT) - -rm -f src/src_connmand-tethering.$(OBJEXT) - -rm -f src/src_connmand-timeserver.$(OBJEXT) - -rm -f src/src_connmand-timezone.$(OBJEXT) - -rm -f src/src_connmand-util.$(OBJEXT) - -rm -f src/src_connmand-utsname.$(OBJEXT) - -rm -f src/src_connmand-wispr.$(OBJEXT) - -rm -f src/src_connmand-wpad.$(OBJEXT) - -rm -f src/tools_iptables_unit-firewall.$(OBJEXT) - -rm -f src/tools_iptables_unit-iptables.$(OBJEXT) - -rm -f src/tools_iptables_unit-log.$(OBJEXT) - -rm -f src/tools_iptables_unit-nat.$(OBJEXT) - -rm -f src/vpn_connman_vpnd-agent.$(OBJEXT) - -rm -f src/vpn_connman_vpnd-dbus.$(OBJEXT) - -rm -f src/vpn_connman_vpnd-error.$(OBJEXT) - -rm -f src/vpn_connman_vpnd-inet.$(OBJEXT) - -rm -f src/vpn_connman_vpnd-inotify.$(OBJEXT) - -rm -f src/vpn_connman_vpnd-ipaddress.$(OBJEXT) - -rm -f src/vpn_connman_vpnd-log.$(OBJEXT) - -rm -f src/vpn_connman_vpnd-plugin.$(OBJEXT) - -rm -f src/vpn_connman_vpnd-storage.$(OBJEXT) - -rm -f src/vpn_connman_vpnd-task.$(OBJEXT) - -rm -f tools/addr-test.$(OBJEXT) - -rm -f tools/dbus-test.$(OBJEXT) - -rm -f tools/dhcp-server-test.$(OBJEXT) - -rm -f tools/dhcp-test.$(OBJEXT) - -rm -f tools/dnsproxy-test.$(OBJEXT) - -rm -f tools/iptables-test.$(OBJEXT) - -rm -f tools/manager-api.$(OBJEXT) - -rm -f tools/netlink-test.$(OBJEXT) - -rm -f tools/polkit-test.$(OBJEXT) - -rm -f tools/private-network-test.$(OBJEXT) - -rm -f tools/resolv-test.$(OBJEXT) - -rm -f tools/session-api.$(OBJEXT) - -rm -f tools/session-test.$(OBJEXT) - -rm -f tools/session-utils.$(OBJEXT) - -rm -f tools/stats-tool.$(OBJEXT) - -rm -f tools/supplicant-dbus.$(OBJEXT) - -rm -f tools/supplicant-test.$(OBJEXT) - -rm -f tools/supplicant.$(OBJEXT) - -rm -f tools/tap-test.$(OBJEXT) - -rm -f tools/tools_iptables_unit-iptables-unit.$(OBJEXT) - -rm -f tools/web-test.$(OBJEXT) - -rm -f tools/wispr.$(OBJEXT) - -rm -f tools/wpad-test.$(OBJEXT) - -rm -f unit/test-ippool.$(OBJEXT) - -rm -f vpn/plugins/vpn_connman_vpnd-l2tp.$(OBJEXT) - -rm -f vpn/plugins/vpn_connman_vpnd-openconnect.$(OBJEXT) - -rm -f vpn/plugins/vpn_connman_vpnd-openvpn.$(OBJEXT) - -rm -f vpn/plugins/vpn_connman_vpnd-pptp.$(OBJEXT) - -rm -f vpn/plugins/vpn_connman_vpnd-vpn.$(OBJEXT) - -rm -f vpn/plugins/vpn_connman_vpnd-vpnc.$(OBJEXT) - -rm -f vpn/plugins/vpn_plugins_l2tp_la-l2tp.$(OBJEXT) - -rm -f vpn/plugins/vpn_plugins_l2tp_la-l2tp.lo - -rm -f vpn/plugins/vpn_plugins_l2tp_la-vpn.$(OBJEXT) - -rm -f vpn/plugins/vpn_plugins_l2tp_la-vpn.lo - -rm -f vpn/plugins/vpn_plugins_openconnect_la-openconnect.$(OBJEXT) - -rm -f vpn/plugins/vpn_plugins_openconnect_la-openconnect.lo - -rm -f vpn/plugins/vpn_plugins_openconnect_la-vpn.$(OBJEXT) - -rm -f vpn/plugins/vpn_plugins_openconnect_la-vpn.lo - -rm -f vpn/plugins/vpn_plugins_openvpn_la-openvpn.$(OBJEXT) - -rm -f vpn/plugins/vpn_plugins_openvpn_la-openvpn.lo - -rm -f vpn/plugins/vpn_plugins_openvpn_la-vpn.$(OBJEXT) - -rm -f vpn/plugins/vpn_plugins_openvpn_la-vpn.lo - -rm -f vpn/plugins/vpn_plugins_pptp_la-pptp.$(OBJEXT) - -rm -f vpn/plugins/vpn_plugins_pptp_la-pptp.lo - -rm -f vpn/plugins/vpn_plugins_pptp_la-vpn.$(OBJEXT) - -rm -f vpn/plugins/vpn_plugins_pptp_la-vpn.lo - -rm -f vpn/plugins/vpn_plugins_vpnc_la-vpn.$(OBJEXT) - -rm -f vpn/plugins/vpn_plugins_vpnc_la-vpn.lo - -rm -f vpn/plugins/vpn_plugins_vpnc_la-vpnc.$(OBJEXT) - -rm -f vpn/plugins/vpn_plugins_vpnc_la-vpnc.lo - -rm -f vpn/vpn_connman_vpnd-main.$(OBJEXT) - -rm -f vpn/vpn_connman_vpnd-vpn-agent.$(OBJEXT) - -rm -f vpn/vpn_connman_vpnd-vpn-config.$(OBJEXT) - -rm -f vpn/vpn_connman_vpnd-vpn-ipconfig.$(OBJEXT) - -rm -f vpn/vpn_connman_vpnd-vpn-manager.$(OBJEXT) - -rm -f vpn/vpn_connman_vpnd-vpn-provider.$(OBJEXT) - -rm -f vpn/vpn_connman_vpnd-vpn-rtnl.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@client/$(DEPDIR)/agent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@client/$(DEPDIR)/commands.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@client/$(DEPDIR)/dbus_helpers.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@client/$(DEPDIR)/input.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@client/$(DEPDIR)/main.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@client/$(DEPDIR)/peers.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@client/$(DEPDIR)/services.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@client/$(DEPDIR)/vpnconnections.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gdbus/$(DEPDIR)/client.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gdbus/$(DEPDIR)/mainloop.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gdbus/$(DEPDIR)/object.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gdbus/$(DEPDIR)/polkit.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gdbus/$(DEPDIR)/watch.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gdhcp/$(DEPDIR)/client.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gdhcp/$(DEPDIR)/common.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gdhcp/$(DEPDIR)/ipv4ll.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gdhcp/$(DEPDIR)/server.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gdhcp/$(DEPDIR)/src_connmand-client.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gdhcp/$(DEPDIR)/src_connmand-common.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gdhcp/$(DEPDIR)/src_connmand-ipv4ll.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gdhcp/$(DEPDIR)/src_connmand-server.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gsupplicant/$(DEPDIR)/src_connmand-dbus.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gsupplicant/$(DEPDIR)/src_connmand-supplicant.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gweb/$(DEPDIR)/giognutls.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gweb/$(DEPDIR)/gionotls.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gweb/$(DEPDIR)/gresolv.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gweb/$(DEPDIR)/gweb.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gweb/$(DEPDIR)/src_connmand-giognutls.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gweb/$(DEPDIR)/src_connmand-gionotls.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gweb/$(DEPDIR)/src_connmand-gresolv.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gweb/$(DEPDIR)/src_connmand-gweb.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gweb/$(DEPDIR)/vpn_connman_vpnd-giognutls.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gweb/$(DEPDIR)/vpn_connman_vpnd-gionotls.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gweb/$(DEPDIR)/vpn_connman_vpnd-gresolv.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gweb/$(DEPDIR)/vpn_connman_vpnd-gweb.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@plugins/$(DEPDIR)/plugins_hh2serial_gps_la-hh2serial-gps.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@plugins/$(DEPDIR)/plugins_iospm_la-iospm.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@plugins/$(DEPDIR)/plugins_session_policy_local_la-session_policy_local.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@plugins/$(DEPDIR)/plugins_tist_la-tist.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@plugins/$(DEPDIR)/src_connmand-bluetooth.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@plugins/$(DEPDIR)/src_connmand-bluetooth_legacy.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@plugins/$(DEPDIR)/src_connmand-dundee.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@plugins/$(DEPDIR)/src_connmand-ethernet.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@plugins/$(DEPDIR)/src_connmand-gadget.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@plugins/$(DEPDIR)/src_connmand-hh2serial-gps.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@plugins/$(DEPDIR)/src_connmand-loopback.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@plugins/$(DEPDIR)/src_connmand-neard.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@plugins/$(DEPDIR)/src_connmand-nmcompat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@plugins/$(DEPDIR)/src_connmand-ofono.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@plugins/$(DEPDIR)/src_connmand-pacrunner.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@plugins/$(DEPDIR)/src_connmand-polkit.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@plugins/$(DEPDIR)/src_connmand-session_policy_local.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@plugins/$(DEPDIR)/src_connmand-tist.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@plugins/$(DEPDIR)/src_connmand-vpn.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@plugins/$(DEPDIR)/src_connmand-wifi.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@scripts/$(DEPDIR)/libppp-plugin.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@scripts/$(DEPDIR)/openconnect-script.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@scripts/$(DEPDIR)/openvpn-script.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/dbus.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/error.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/ippool.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/iptables.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/log.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-6to4.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-agent-connman.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-agent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-bridge.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-clock.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-config.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-connection.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-counter.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-dbus.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-detect.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-device.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-dhcp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-dhcpv6.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-dnsproxy.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-error.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-firewall.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-inet.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-inotify.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-ipaddress.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-ipconfig.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-ippool.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-iptables.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-ipv6pd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-log.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-machine.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-main.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-manager.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-nat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-network.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-notifier.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-ntp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-peer.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-peer_service.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-plugin.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-provider.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-proxy.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-resolver.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-rfkill.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-rtnl.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-service.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-session.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-stats.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-storage.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-task.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-technology.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-tethering.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-timeserver.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-timezone.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-util.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-utsname.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-wispr.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_connmand-wpad.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/tools_iptables_unit-firewall.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/tools_iptables_unit-iptables.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/tools_iptables_unit-log.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/tools_iptables_unit-nat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vpn_connman_vpnd-agent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vpn_connman_vpnd-dbus.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vpn_connman_vpnd-error.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vpn_connman_vpnd-inet.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vpn_connman_vpnd-inotify.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vpn_connman_vpnd-ipaddress.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vpn_connman_vpnd-log.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vpn_connman_vpnd-plugin.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vpn_connman_vpnd-storage.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vpn_connman_vpnd-task.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/netlink.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/src_connmand-netlink.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/src_connmand-util.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/util.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/addr-test.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/dbus-test.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/dhcp-server-test.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/dhcp-test.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/dnsproxy-test.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/iptables-test.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/manager-api.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/netlink-test.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/polkit-test.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/private-network-test.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/resolv-test.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/session-api.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/session-test.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/session-utils.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/stats-tool.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/supplicant-dbus.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/supplicant-test.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/supplicant.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/tap-test.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/tools_iptables_unit-iptables-unit.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/web-test.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/wispr.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@tools/$(DEPDIR)/wpad-test.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/test-ippool.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@vpn/$(DEPDIR)/vpn_connman_vpnd-main.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-agent.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-config.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-ipconfig.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-manager.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-provider.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-rtnl.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-l2tp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-openconnect.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-openvpn.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-pptp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-vpn.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-vpnc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@vpn/plugins/$(DEPDIR)/vpn_plugins_l2tp_la-l2tp.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@vpn/plugins/$(DEPDIR)/vpn_plugins_l2tp_la-vpn.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@vpn/plugins/$(DEPDIR)/vpn_plugins_openconnect_la-openconnect.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@vpn/plugins/$(DEPDIR)/vpn_plugins_openconnect_la-vpn.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@vpn/plugins/$(DEPDIR)/vpn_plugins_openvpn_la-openvpn.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@vpn/plugins/$(DEPDIR)/vpn_plugins_openvpn_la-vpn.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@vpn/plugins/$(DEPDIR)/vpn_plugins_pptp_la-pptp.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@vpn/plugins/$(DEPDIR)/vpn_plugins_pptp_la-vpn.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@vpn/plugins/$(DEPDIR)/vpn_plugins_vpnc_la-vpn.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@vpn/plugins/$(DEPDIR)/vpn_plugins_vpnc_la-vpnc.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)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 $@ $< - -.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@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(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@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -plugins/plugins_hh2serial_gps_la-hh2serial-gps.lo: plugins/hh2serial-gps.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(plugins_hh2serial_gps_la_CFLAGS) $(CFLAGS) -MT plugins/plugins_hh2serial_gps_la-hh2serial-gps.lo -MD -MP -MF plugins/$(DEPDIR)/plugins_hh2serial_gps_la-hh2serial-gps.Tpo -c -o plugins/plugins_hh2serial_gps_la-hh2serial-gps.lo `test -f 'plugins/hh2serial-gps.c' || echo '$(srcdir)/'`plugins/hh2serial-gps.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/plugins_hh2serial_gps_la-hh2serial-gps.Tpo plugins/$(DEPDIR)/plugins_hh2serial_gps_la-hh2serial-gps.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/hh2serial-gps.c' object='plugins/plugins_hh2serial_gps_la-hh2serial-gps.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(plugins_hh2serial_gps_la_CFLAGS) $(CFLAGS) -c -o plugins/plugins_hh2serial_gps_la-hh2serial-gps.lo `test -f 'plugins/hh2serial-gps.c' || echo '$(srcdir)/'`plugins/hh2serial-gps.c - -plugins/plugins_iospm_la-iospm.lo: plugins/iospm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(plugins_iospm_la_CFLAGS) $(CFLAGS) -MT plugins/plugins_iospm_la-iospm.lo -MD -MP -MF plugins/$(DEPDIR)/plugins_iospm_la-iospm.Tpo -c -o plugins/plugins_iospm_la-iospm.lo `test -f 'plugins/iospm.c' || echo '$(srcdir)/'`plugins/iospm.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/plugins_iospm_la-iospm.Tpo plugins/$(DEPDIR)/plugins_iospm_la-iospm.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/iospm.c' object='plugins/plugins_iospm_la-iospm.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(plugins_iospm_la_CFLAGS) $(CFLAGS) -c -o plugins/plugins_iospm_la-iospm.lo `test -f 'plugins/iospm.c' || echo '$(srcdir)/'`plugins/iospm.c - -plugins/plugins_session_policy_local_la-session_policy_local.lo: plugins/session_policy_local.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(plugins_session_policy_local_la_CFLAGS) $(CFLAGS) -MT plugins/plugins_session_policy_local_la-session_policy_local.lo -MD -MP -MF plugins/$(DEPDIR)/plugins_session_policy_local_la-session_policy_local.Tpo -c -o plugins/plugins_session_policy_local_la-session_policy_local.lo `test -f 'plugins/session_policy_local.c' || echo '$(srcdir)/'`plugins/session_policy_local.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/plugins_session_policy_local_la-session_policy_local.Tpo plugins/$(DEPDIR)/plugins_session_policy_local_la-session_policy_local.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/session_policy_local.c' object='plugins/plugins_session_policy_local_la-session_policy_local.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(plugins_session_policy_local_la_CFLAGS) $(CFLAGS) -c -o plugins/plugins_session_policy_local_la-session_policy_local.lo `test -f 'plugins/session_policy_local.c' || echo '$(srcdir)/'`plugins/session_policy_local.c - -plugins/plugins_tist_la-tist.lo: plugins/tist.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(plugins_tist_la_CFLAGS) $(CFLAGS) -MT plugins/plugins_tist_la-tist.lo -MD -MP -MF plugins/$(DEPDIR)/plugins_tist_la-tist.Tpo -c -o plugins/plugins_tist_la-tist.lo `test -f 'plugins/tist.c' || echo '$(srcdir)/'`plugins/tist.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/plugins_tist_la-tist.Tpo plugins/$(DEPDIR)/plugins_tist_la-tist.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/tist.c' object='plugins/plugins_tist_la-tist.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(plugins_tist_la_CFLAGS) $(CFLAGS) -c -o plugins/plugins_tist_la-tist.lo `test -f 'plugins/tist.c' || echo '$(srcdir)/'`plugins/tist.c - -vpn/plugins/vpn_plugins_l2tp_la-vpn.lo: vpn/plugins/vpn.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_plugins_l2tp_la_CFLAGS) $(CFLAGS) -MT vpn/plugins/vpn_plugins_l2tp_la-vpn.lo -MD -MP -MF vpn/plugins/$(DEPDIR)/vpn_plugins_l2tp_la-vpn.Tpo -c -o vpn/plugins/vpn_plugins_l2tp_la-vpn.lo `test -f 'vpn/plugins/vpn.c' || echo '$(srcdir)/'`vpn/plugins/vpn.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/plugins/$(DEPDIR)/vpn_plugins_l2tp_la-vpn.Tpo vpn/plugins/$(DEPDIR)/vpn_plugins_l2tp_la-vpn.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/plugins/vpn.c' object='vpn/plugins/vpn_plugins_l2tp_la-vpn.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_plugins_l2tp_la_CFLAGS) $(CFLAGS) -c -o vpn/plugins/vpn_plugins_l2tp_la-vpn.lo `test -f 'vpn/plugins/vpn.c' || echo '$(srcdir)/'`vpn/plugins/vpn.c - -vpn/plugins/vpn_plugins_l2tp_la-l2tp.lo: vpn/plugins/l2tp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_plugins_l2tp_la_CFLAGS) $(CFLAGS) -MT vpn/plugins/vpn_plugins_l2tp_la-l2tp.lo -MD -MP -MF vpn/plugins/$(DEPDIR)/vpn_plugins_l2tp_la-l2tp.Tpo -c -o vpn/plugins/vpn_plugins_l2tp_la-l2tp.lo `test -f 'vpn/plugins/l2tp.c' || echo '$(srcdir)/'`vpn/plugins/l2tp.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/plugins/$(DEPDIR)/vpn_plugins_l2tp_la-l2tp.Tpo vpn/plugins/$(DEPDIR)/vpn_plugins_l2tp_la-l2tp.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/plugins/l2tp.c' object='vpn/plugins/vpn_plugins_l2tp_la-l2tp.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_plugins_l2tp_la_CFLAGS) $(CFLAGS) -c -o vpn/plugins/vpn_plugins_l2tp_la-l2tp.lo `test -f 'vpn/plugins/l2tp.c' || echo '$(srcdir)/'`vpn/plugins/l2tp.c - -vpn/plugins/vpn_plugins_openconnect_la-vpn.lo: vpn/plugins/vpn.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_plugins_openconnect_la_CFLAGS) $(CFLAGS) -MT vpn/plugins/vpn_plugins_openconnect_la-vpn.lo -MD -MP -MF vpn/plugins/$(DEPDIR)/vpn_plugins_openconnect_la-vpn.Tpo -c -o vpn/plugins/vpn_plugins_openconnect_la-vpn.lo `test -f 'vpn/plugins/vpn.c' || echo '$(srcdir)/'`vpn/plugins/vpn.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/plugins/$(DEPDIR)/vpn_plugins_openconnect_la-vpn.Tpo vpn/plugins/$(DEPDIR)/vpn_plugins_openconnect_la-vpn.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/plugins/vpn.c' object='vpn/plugins/vpn_plugins_openconnect_la-vpn.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_plugins_openconnect_la_CFLAGS) $(CFLAGS) -c -o vpn/plugins/vpn_plugins_openconnect_la-vpn.lo `test -f 'vpn/plugins/vpn.c' || echo '$(srcdir)/'`vpn/plugins/vpn.c - -vpn/plugins/vpn_plugins_openconnect_la-openconnect.lo: vpn/plugins/openconnect.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_plugins_openconnect_la_CFLAGS) $(CFLAGS) -MT vpn/plugins/vpn_plugins_openconnect_la-openconnect.lo -MD -MP -MF vpn/plugins/$(DEPDIR)/vpn_plugins_openconnect_la-openconnect.Tpo -c -o vpn/plugins/vpn_plugins_openconnect_la-openconnect.lo `test -f 'vpn/plugins/openconnect.c' || echo '$(srcdir)/'`vpn/plugins/openconnect.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/plugins/$(DEPDIR)/vpn_plugins_openconnect_la-openconnect.Tpo vpn/plugins/$(DEPDIR)/vpn_plugins_openconnect_la-openconnect.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/plugins/openconnect.c' object='vpn/plugins/vpn_plugins_openconnect_la-openconnect.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_plugins_openconnect_la_CFLAGS) $(CFLAGS) -c -o vpn/plugins/vpn_plugins_openconnect_la-openconnect.lo `test -f 'vpn/plugins/openconnect.c' || echo '$(srcdir)/'`vpn/plugins/openconnect.c - -vpn/plugins/vpn_plugins_openvpn_la-vpn.lo: vpn/plugins/vpn.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_plugins_openvpn_la_CFLAGS) $(CFLAGS) -MT vpn/plugins/vpn_plugins_openvpn_la-vpn.lo -MD -MP -MF vpn/plugins/$(DEPDIR)/vpn_plugins_openvpn_la-vpn.Tpo -c -o vpn/plugins/vpn_plugins_openvpn_la-vpn.lo `test -f 'vpn/plugins/vpn.c' || echo '$(srcdir)/'`vpn/plugins/vpn.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/plugins/$(DEPDIR)/vpn_plugins_openvpn_la-vpn.Tpo vpn/plugins/$(DEPDIR)/vpn_plugins_openvpn_la-vpn.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/plugins/vpn.c' object='vpn/plugins/vpn_plugins_openvpn_la-vpn.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_plugins_openvpn_la_CFLAGS) $(CFLAGS) -c -o vpn/plugins/vpn_plugins_openvpn_la-vpn.lo `test -f 'vpn/plugins/vpn.c' || echo '$(srcdir)/'`vpn/plugins/vpn.c - -vpn/plugins/vpn_plugins_openvpn_la-openvpn.lo: vpn/plugins/openvpn.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_plugins_openvpn_la_CFLAGS) $(CFLAGS) -MT vpn/plugins/vpn_plugins_openvpn_la-openvpn.lo -MD -MP -MF vpn/plugins/$(DEPDIR)/vpn_plugins_openvpn_la-openvpn.Tpo -c -o vpn/plugins/vpn_plugins_openvpn_la-openvpn.lo `test -f 'vpn/plugins/openvpn.c' || echo '$(srcdir)/'`vpn/plugins/openvpn.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/plugins/$(DEPDIR)/vpn_plugins_openvpn_la-openvpn.Tpo vpn/plugins/$(DEPDIR)/vpn_plugins_openvpn_la-openvpn.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/plugins/openvpn.c' object='vpn/plugins/vpn_plugins_openvpn_la-openvpn.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_plugins_openvpn_la_CFLAGS) $(CFLAGS) -c -o vpn/plugins/vpn_plugins_openvpn_la-openvpn.lo `test -f 'vpn/plugins/openvpn.c' || echo '$(srcdir)/'`vpn/plugins/openvpn.c - -vpn/plugins/vpn_plugins_pptp_la-vpn.lo: vpn/plugins/vpn.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_plugins_pptp_la_CFLAGS) $(CFLAGS) -MT vpn/plugins/vpn_plugins_pptp_la-vpn.lo -MD -MP -MF vpn/plugins/$(DEPDIR)/vpn_plugins_pptp_la-vpn.Tpo -c -o vpn/plugins/vpn_plugins_pptp_la-vpn.lo `test -f 'vpn/plugins/vpn.c' || echo '$(srcdir)/'`vpn/plugins/vpn.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/plugins/$(DEPDIR)/vpn_plugins_pptp_la-vpn.Tpo vpn/plugins/$(DEPDIR)/vpn_plugins_pptp_la-vpn.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/plugins/vpn.c' object='vpn/plugins/vpn_plugins_pptp_la-vpn.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_plugins_pptp_la_CFLAGS) $(CFLAGS) -c -o vpn/plugins/vpn_plugins_pptp_la-vpn.lo `test -f 'vpn/plugins/vpn.c' || echo '$(srcdir)/'`vpn/plugins/vpn.c - -vpn/plugins/vpn_plugins_pptp_la-pptp.lo: vpn/plugins/pptp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_plugins_pptp_la_CFLAGS) $(CFLAGS) -MT vpn/plugins/vpn_plugins_pptp_la-pptp.lo -MD -MP -MF vpn/plugins/$(DEPDIR)/vpn_plugins_pptp_la-pptp.Tpo -c -o vpn/plugins/vpn_plugins_pptp_la-pptp.lo `test -f 'vpn/plugins/pptp.c' || echo '$(srcdir)/'`vpn/plugins/pptp.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/plugins/$(DEPDIR)/vpn_plugins_pptp_la-pptp.Tpo vpn/plugins/$(DEPDIR)/vpn_plugins_pptp_la-pptp.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/plugins/pptp.c' object='vpn/plugins/vpn_plugins_pptp_la-pptp.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_plugins_pptp_la_CFLAGS) $(CFLAGS) -c -o vpn/plugins/vpn_plugins_pptp_la-pptp.lo `test -f 'vpn/plugins/pptp.c' || echo '$(srcdir)/'`vpn/plugins/pptp.c - -vpn/plugins/vpn_plugins_vpnc_la-vpn.lo: vpn/plugins/vpn.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_plugins_vpnc_la_CFLAGS) $(CFLAGS) -MT vpn/plugins/vpn_plugins_vpnc_la-vpn.lo -MD -MP -MF vpn/plugins/$(DEPDIR)/vpn_plugins_vpnc_la-vpn.Tpo -c -o vpn/plugins/vpn_plugins_vpnc_la-vpn.lo `test -f 'vpn/plugins/vpn.c' || echo '$(srcdir)/'`vpn/plugins/vpn.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/plugins/$(DEPDIR)/vpn_plugins_vpnc_la-vpn.Tpo vpn/plugins/$(DEPDIR)/vpn_plugins_vpnc_la-vpn.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/plugins/vpn.c' object='vpn/plugins/vpn_plugins_vpnc_la-vpn.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_plugins_vpnc_la_CFLAGS) $(CFLAGS) -c -o vpn/plugins/vpn_plugins_vpnc_la-vpn.lo `test -f 'vpn/plugins/vpn.c' || echo '$(srcdir)/'`vpn/plugins/vpn.c - -vpn/plugins/vpn_plugins_vpnc_la-vpnc.lo: vpn/plugins/vpnc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_plugins_vpnc_la_CFLAGS) $(CFLAGS) -MT vpn/plugins/vpn_plugins_vpnc_la-vpnc.lo -MD -MP -MF vpn/plugins/$(DEPDIR)/vpn_plugins_vpnc_la-vpnc.Tpo -c -o vpn/plugins/vpn_plugins_vpnc_la-vpnc.lo `test -f 'vpn/plugins/vpnc.c' || echo '$(srcdir)/'`vpn/plugins/vpnc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/plugins/$(DEPDIR)/vpn_plugins_vpnc_la-vpnc.Tpo vpn/plugins/$(DEPDIR)/vpn_plugins_vpnc_la-vpnc.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/plugins/vpnc.c' object='vpn/plugins/vpn_plugins_vpnc_la-vpnc.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_plugins_vpnc_la_CFLAGS) $(CFLAGS) -c -o vpn/plugins/vpn_plugins_vpnc_la-vpnc.lo `test -f 'vpn/plugins/vpnc.c' || echo '$(srcdir)/'`vpn/plugins/vpnc.c - -gdhcp/src_connmand-common.o: gdhcp/common.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT gdhcp/src_connmand-common.o -MD -MP -MF gdhcp/$(DEPDIR)/src_connmand-common.Tpo -c -o gdhcp/src_connmand-common.o `test -f 'gdhcp/common.c' || echo '$(srcdir)/'`gdhcp/common.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gdhcp/$(DEPDIR)/src_connmand-common.Tpo gdhcp/$(DEPDIR)/src_connmand-common.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gdhcp/common.c' object='gdhcp/src_connmand-common.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o gdhcp/src_connmand-common.o `test -f 'gdhcp/common.c' || echo '$(srcdir)/'`gdhcp/common.c - -gdhcp/src_connmand-common.obj: gdhcp/common.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT gdhcp/src_connmand-common.obj -MD -MP -MF gdhcp/$(DEPDIR)/src_connmand-common.Tpo -c -o gdhcp/src_connmand-common.obj `if test -f 'gdhcp/common.c'; then $(CYGPATH_W) 'gdhcp/common.c'; else $(CYGPATH_W) '$(srcdir)/gdhcp/common.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gdhcp/$(DEPDIR)/src_connmand-common.Tpo gdhcp/$(DEPDIR)/src_connmand-common.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gdhcp/common.c' object='gdhcp/src_connmand-common.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o gdhcp/src_connmand-common.obj `if test -f 'gdhcp/common.c'; then $(CYGPATH_W) 'gdhcp/common.c'; else $(CYGPATH_W) '$(srcdir)/gdhcp/common.c'; fi` - -gdhcp/src_connmand-client.o: gdhcp/client.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT gdhcp/src_connmand-client.o -MD -MP -MF gdhcp/$(DEPDIR)/src_connmand-client.Tpo -c -o gdhcp/src_connmand-client.o `test -f 'gdhcp/client.c' || echo '$(srcdir)/'`gdhcp/client.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gdhcp/$(DEPDIR)/src_connmand-client.Tpo gdhcp/$(DEPDIR)/src_connmand-client.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gdhcp/client.c' object='gdhcp/src_connmand-client.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o gdhcp/src_connmand-client.o `test -f 'gdhcp/client.c' || echo '$(srcdir)/'`gdhcp/client.c - -gdhcp/src_connmand-client.obj: gdhcp/client.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT gdhcp/src_connmand-client.obj -MD -MP -MF gdhcp/$(DEPDIR)/src_connmand-client.Tpo -c -o gdhcp/src_connmand-client.obj `if test -f 'gdhcp/client.c'; then $(CYGPATH_W) 'gdhcp/client.c'; else $(CYGPATH_W) '$(srcdir)/gdhcp/client.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gdhcp/$(DEPDIR)/src_connmand-client.Tpo gdhcp/$(DEPDIR)/src_connmand-client.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gdhcp/client.c' object='gdhcp/src_connmand-client.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o gdhcp/src_connmand-client.obj `if test -f 'gdhcp/client.c'; then $(CYGPATH_W) 'gdhcp/client.c'; else $(CYGPATH_W) '$(srcdir)/gdhcp/client.c'; fi` - -gdhcp/src_connmand-server.o: gdhcp/server.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT gdhcp/src_connmand-server.o -MD -MP -MF gdhcp/$(DEPDIR)/src_connmand-server.Tpo -c -o gdhcp/src_connmand-server.o `test -f 'gdhcp/server.c' || echo '$(srcdir)/'`gdhcp/server.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gdhcp/$(DEPDIR)/src_connmand-server.Tpo gdhcp/$(DEPDIR)/src_connmand-server.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gdhcp/server.c' object='gdhcp/src_connmand-server.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o gdhcp/src_connmand-server.o `test -f 'gdhcp/server.c' || echo '$(srcdir)/'`gdhcp/server.c - -gdhcp/src_connmand-server.obj: gdhcp/server.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT gdhcp/src_connmand-server.obj -MD -MP -MF gdhcp/$(DEPDIR)/src_connmand-server.Tpo -c -o gdhcp/src_connmand-server.obj `if test -f 'gdhcp/server.c'; then $(CYGPATH_W) 'gdhcp/server.c'; else $(CYGPATH_W) '$(srcdir)/gdhcp/server.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gdhcp/$(DEPDIR)/src_connmand-server.Tpo gdhcp/$(DEPDIR)/src_connmand-server.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gdhcp/server.c' object='gdhcp/src_connmand-server.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o gdhcp/src_connmand-server.obj `if test -f 'gdhcp/server.c'; then $(CYGPATH_W) 'gdhcp/server.c'; else $(CYGPATH_W) '$(srcdir)/gdhcp/server.c'; fi` - -gdhcp/src_connmand-ipv4ll.o: gdhcp/ipv4ll.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT gdhcp/src_connmand-ipv4ll.o -MD -MP -MF gdhcp/$(DEPDIR)/src_connmand-ipv4ll.Tpo -c -o gdhcp/src_connmand-ipv4ll.o `test -f 'gdhcp/ipv4ll.c' || echo '$(srcdir)/'`gdhcp/ipv4ll.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gdhcp/$(DEPDIR)/src_connmand-ipv4ll.Tpo gdhcp/$(DEPDIR)/src_connmand-ipv4ll.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gdhcp/ipv4ll.c' object='gdhcp/src_connmand-ipv4ll.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o gdhcp/src_connmand-ipv4ll.o `test -f 'gdhcp/ipv4ll.c' || echo '$(srcdir)/'`gdhcp/ipv4ll.c - -gdhcp/src_connmand-ipv4ll.obj: gdhcp/ipv4ll.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT gdhcp/src_connmand-ipv4ll.obj -MD -MP -MF gdhcp/$(DEPDIR)/src_connmand-ipv4ll.Tpo -c -o gdhcp/src_connmand-ipv4ll.obj `if test -f 'gdhcp/ipv4ll.c'; then $(CYGPATH_W) 'gdhcp/ipv4ll.c'; else $(CYGPATH_W) '$(srcdir)/gdhcp/ipv4ll.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gdhcp/$(DEPDIR)/src_connmand-ipv4ll.Tpo gdhcp/$(DEPDIR)/src_connmand-ipv4ll.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gdhcp/ipv4ll.c' object='gdhcp/src_connmand-ipv4ll.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o gdhcp/src_connmand-ipv4ll.obj `if test -f 'gdhcp/ipv4ll.c'; then $(CYGPATH_W) 'gdhcp/ipv4ll.c'; else $(CYGPATH_W) '$(srcdir)/gdhcp/ipv4ll.c'; fi` - -gweb/src_connmand-gweb.o: gweb/gweb.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT gweb/src_connmand-gweb.o -MD -MP -MF gweb/$(DEPDIR)/src_connmand-gweb.Tpo -c -o gweb/src_connmand-gweb.o `test -f 'gweb/gweb.c' || echo '$(srcdir)/'`gweb/gweb.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gweb/$(DEPDIR)/src_connmand-gweb.Tpo gweb/$(DEPDIR)/src_connmand-gweb.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gweb/gweb.c' object='gweb/src_connmand-gweb.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o gweb/src_connmand-gweb.o `test -f 'gweb/gweb.c' || echo '$(srcdir)/'`gweb/gweb.c - -gweb/src_connmand-gweb.obj: gweb/gweb.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT gweb/src_connmand-gweb.obj -MD -MP -MF gweb/$(DEPDIR)/src_connmand-gweb.Tpo -c -o gweb/src_connmand-gweb.obj `if test -f 'gweb/gweb.c'; then $(CYGPATH_W) 'gweb/gweb.c'; else $(CYGPATH_W) '$(srcdir)/gweb/gweb.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gweb/$(DEPDIR)/src_connmand-gweb.Tpo gweb/$(DEPDIR)/src_connmand-gweb.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gweb/gweb.c' object='gweb/src_connmand-gweb.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o gweb/src_connmand-gweb.obj `if test -f 'gweb/gweb.c'; then $(CYGPATH_W) 'gweb/gweb.c'; else $(CYGPATH_W) '$(srcdir)/gweb/gweb.c'; fi` - -gweb/src_connmand-gresolv.o: gweb/gresolv.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT gweb/src_connmand-gresolv.o -MD -MP -MF gweb/$(DEPDIR)/src_connmand-gresolv.Tpo -c -o gweb/src_connmand-gresolv.o `test -f 'gweb/gresolv.c' || echo '$(srcdir)/'`gweb/gresolv.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gweb/$(DEPDIR)/src_connmand-gresolv.Tpo gweb/$(DEPDIR)/src_connmand-gresolv.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gweb/gresolv.c' object='gweb/src_connmand-gresolv.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o gweb/src_connmand-gresolv.o `test -f 'gweb/gresolv.c' || echo '$(srcdir)/'`gweb/gresolv.c - -gweb/src_connmand-gresolv.obj: gweb/gresolv.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT gweb/src_connmand-gresolv.obj -MD -MP -MF gweb/$(DEPDIR)/src_connmand-gresolv.Tpo -c -o gweb/src_connmand-gresolv.obj `if test -f 'gweb/gresolv.c'; then $(CYGPATH_W) 'gweb/gresolv.c'; else $(CYGPATH_W) '$(srcdir)/gweb/gresolv.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gweb/$(DEPDIR)/src_connmand-gresolv.Tpo gweb/$(DEPDIR)/src_connmand-gresolv.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gweb/gresolv.c' object='gweb/src_connmand-gresolv.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o gweb/src_connmand-gresolv.obj `if test -f 'gweb/gresolv.c'; then $(CYGPATH_W) 'gweb/gresolv.c'; else $(CYGPATH_W) '$(srcdir)/gweb/gresolv.c'; fi` - -gweb/src_connmand-giognutls.o: gweb/giognutls.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT gweb/src_connmand-giognutls.o -MD -MP -MF gweb/$(DEPDIR)/src_connmand-giognutls.Tpo -c -o gweb/src_connmand-giognutls.o `test -f 'gweb/giognutls.c' || echo '$(srcdir)/'`gweb/giognutls.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gweb/$(DEPDIR)/src_connmand-giognutls.Tpo gweb/$(DEPDIR)/src_connmand-giognutls.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gweb/giognutls.c' object='gweb/src_connmand-giognutls.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o gweb/src_connmand-giognutls.o `test -f 'gweb/giognutls.c' || echo '$(srcdir)/'`gweb/giognutls.c - -gweb/src_connmand-giognutls.obj: gweb/giognutls.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT gweb/src_connmand-giognutls.obj -MD -MP -MF gweb/$(DEPDIR)/src_connmand-giognutls.Tpo -c -o gweb/src_connmand-giognutls.obj `if test -f 'gweb/giognutls.c'; then $(CYGPATH_W) 'gweb/giognutls.c'; else $(CYGPATH_W) '$(srcdir)/gweb/giognutls.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gweb/$(DEPDIR)/src_connmand-giognutls.Tpo gweb/$(DEPDIR)/src_connmand-giognutls.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gweb/giognutls.c' object='gweb/src_connmand-giognutls.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o gweb/src_connmand-giognutls.obj `if test -f 'gweb/giognutls.c'; then $(CYGPATH_W) 'gweb/giognutls.c'; else $(CYGPATH_W) '$(srcdir)/gweb/giognutls.c'; fi` - -gweb/src_connmand-gionotls.o: gweb/gionotls.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT gweb/src_connmand-gionotls.o -MD -MP -MF gweb/$(DEPDIR)/src_connmand-gionotls.Tpo -c -o gweb/src_connmand-gionotls.o `test -f 'gweb/gionotls.c' || echo '$(srcdir)/'`gweb/gionotls.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gweb/$(DEPDIR)/src_connmand-gionotls.Tpo gweb/$(DEPDIR)/src_connmand-gionotls.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gweb/gionotls.c' object='gweb/src_connmand-gionotls.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o gweb/src_connmand-gionotls.o `test -f 'gweb/gionotls.c' || echo '$(srcdir)/'`gweb/gionotls.c - -gweb/src_connmand-gionotls.obj: gweb/gionotls.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT gweb/src_connmand-gionotls.obj -MD -MP -MF gweb/$(DEPDIR)/src_connmand-gionotls.Tpo -c -o gweb/src_connmand-gionotls.obj `if test -f 'gweb/gionotls.c'; then $(CYGPATH_W) 'gweb/gionotls.c'; else $(CYGPATH_W) '$(srcdir)/gweb/gionotls.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gweb/$(DEPDIR)/src_connmand-gionotls.Tpo gweb/$(DEPDIR)/src_connmand-gionotls.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gweb/gionotls.c' object='gweb/src_connmand-gionotls.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o gweb/src_connmand-gionotls.obj `if test -f 'gweb/gionotls.c'; then $(CYGPATH_W) 'gweb/gionotls.c'; else $(CYGPATH_W) '$(srcdir)/gweb/gionotls.c'; fi` - -plugins/src_connmand-loopback.o: plugins/loopback.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-loopback.o -MD -MP -MF plugins/$(DEPDIR)/src_connmand-loopback.Tpo -c -o plugins/src_connmand-loopback.o `test -f 'plugins/loopback.c' || echo '$(srcdir)/'`plugins/loopback.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-loopback.Tpo plugins/$(DEPDIR)/src_connmand-loopback.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/loopback.c' object='plugins/src_connmand-loopback.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-loopback.o `test -f 'plugins/loopback.c' || echo '$(srcdir)/'`plugins/loopback.c - -plugins/src_connmand-loopback.obj: plugins/loopback.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-loopback.obj -MD -MP -MF plugins/$(DEPDIR)/src_connmand-loopback.Tpo -c -o plugins/src_connmand-loopback.obj `if test -f 'plugins/loopback.c'; then $(CYGPATH_W) 'plugins/loopback.c'; else $(CYGPATH_W) '$(srcdir)/plugins/loopback.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-loopback.Tpo plugins/$(DEPDIR)/src_connmand-loopback.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/loopback.c' object='plugins/src_connmand-loopback.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-loopback.obj `if test -f 'plugins/loopback.c'; then $(CYGPATH_W) 'plugins/loopback.c'; else $(CYGPATH_W) '$(srcdir)/plugins/loopback.c'; fi` - -plugins/src_connmand-ethernet.o: plugins/ethernet.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-ethernet.o -MD -MP -MF plugins/$(DEPDIR)/src_connmand-ethernet.Tpo -c -o plugins/src_connmand-ethernet.o `test -f 'plugins/ethernet.c' || echo '$(srcdir)/'`plugins/ethernet.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-ethernet.Tpo plugins/$(DEPDIR)/src_connmand-ethernet.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/ethernet.c' object='plugins/src_connmand-ethernet.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-ethernet.o `test -f 'plugins/ethernet.c' || echo '$(srcdir)/'`plugins/ethernet.c - -plugins/src_connmand-ethernet.obj: plugins/ethernet.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-ethernet.obj -MD -MP -MF plugins/$(DEPDIR)/src_connmand-ethernet.Tpo -c -o plugins/src_connmand-ethernet.obj `if test -f 'plugins/ethernet.c'; then $(CYGPATH_W) 'plugins/ethernet.c'; else $(CYGPATH_W) '$(srcdir)/plugins/ethernet.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-ethernet.Tpo plugins/$(DEPDIR)/src_connmand-ethernet.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/ethernet.c' object='plugins/src_connmand-ethernet.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-ethernet.obj `if test -f 'plugins/ethernet.c'; then $(CYGPATH_W) 'plugins/ethernet.c'; else $(CYGPATH_W) '$(srcdir)/plugins/ethernet.c'; fi` - -plugins/src_connmand-gadget.o: plugins/gadget.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-gadget.o -MD -MP -MF plugins/$(DEPDIR)/src_connmand-gadget.Tpo -c -o plugins/src_connmand-gadget.o `test -f 'plugins/gadget.c' || echo '$(srcdir)/'`plugins/gadget.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-gadget.Tpo plugins/$(DEPDIR)/src_connmand-gadget.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/gadget.c' object='plugins/src_connmand-gadget.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-gadget.o `test -f 'plugins/gadget.c' || echo '$(srcdir)/'`plugins/gadget.c - -plugins/src_connmand-gadget.obj: plugins/gadget.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-gadget.obj -MD -MP -MF plugins/$(DEPDIR)/src_connmand-gadget.Tpo -c -o plugins/src_connmand-gadget.obj `if test -f 'plugins/gadget.c'; then $(CYGPATH_W) 'plugins/gadget.c'; else $(CYGPATH_W) '$(srcdir)/plugins/gadget.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-gadget.Tpo plugins/$(DEPDIR)/src_connmand-gadget.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/gadget.c' object='plugins/src_connmand-gadget.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-gadget.obj `if test -f 'plugins/gadget.c'; then $(CYGPATH_W) 'plugins/gadget.c'; else $(CYGPATH_W) '$(srcdir)/plugins/gadget.c'; fi` - -plugins/src_connmand-wifi.o: plugins/wifi.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-wifi.o -MD -MP -MF plugins/$(DEPDIR)/src_connmand-wifi.Tpo -c -o plugins/src_connmand-wifi.o `test -f 'plugins/wifi.c' || echo '$(srcdir)/'`plugins/wifi.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-wifi.Tpo plugins/$(DEPDIR)/src_connmand-wifi.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/wifi.c' object='plugins/src_connmand-wifi.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-wifi.o `test -f 'plugins/wifi.c' || echo '$(srcdir)/'`plugins/wifi.c - -plugins/src_connmand-wifi.obj: plugins/wifi.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-wifi.obj -MD -MP -MF plugins/$(DEPDIR)/src_connmand-wifi.Tpo -c -o plugins/src_connmand-wifi.obj `if test -f 'plugins/wifi.c'; then $(CYGPATH_W) 'plugins/wifi.c'; else $(CYGPATH_W) '$(srcdir)/plugins/wifi.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-wifi.Tpo plugins/$(DEPDIR)/src_connmand-wifi.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/wifi.c' object='plugins/src_connmand-wifi.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-wifi.obj `if test -f 'plugins/wifi.c'; then $(CYGPATH_W) 'plugins/wifi.c'; else $(CYGPATH_W) '$(srcdir)/plugins/wifi.c'; fi` - -gsupplicant/src_connmand-supplicant.o: gsupplicant/supplicant.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT gsupplicant/src_connmand-supplicant.o -MD -MP -MF gsupplicant/$(DEPDIR)/src_connmand-supplicant.Tpo -c -o gsupplicant/src_connmand-supplicant.o `test -f 'gsupplicant/supplicant.c' || echo '$(srcdir)/'`gsupplicant/supplicant.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gsupplicant/$(DEPDIR)/src_connmand-supplicant.Tpo gsupplicant/$(DEPDIR)/src_connmand-supplicant.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsupplicant/supplicant.c' object='gsupplicant/src_connmand-supplicant.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o gsupplicant/src_connmand-supplicant.o `test -f 'gsupplicant/supplicant.c' || echo '$(srcdir)/'`gsupplicant/supplicant.c - -gsupplicant/src_connmand-supplicant.obj: gsupplicant/supplicant.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT gsupplicant/src_connmand-supplicant.obj -MD -MP -MF gsupplicant/$(DEPDIR)/src_connmand-supplicant.Tpo -c -o gsupplicant/src_connmand-supplicant.obj `if test -f 'gsupplicant/supplicant.c'; then $(CYGPATH_W) 'gsupplicant/supplicant.c'; else $(CYGPATH_W) '$(srcdir)/gsupplicant/supplicant.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gsupplicant/$(DEPDIR)/src_connmand-supplicant.Tpo gsupplicant/$(DEPDIR)/src_connmand-supplicant.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsupplicant/supplicant.c' object='gsupplicant/src_connmand-supplicant.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o gsupplicant/src_connmand-supplicant.obj `if test -f 'gsupplicant/supplicant.c'; then $(CYGPATH_W) 'gsupplicant/supplicant.c'; else $(CYGPATH_W) '$(srcdir)/gsupplicant/supplicant.c'; fi` - -gsupplicant/src_connmand-dbus.o: gsupplicant/dbus.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT gsupplicant/src_connmand-dbus.o -MD -MP -MF gsupplicant/$(DEPDIR)/src_connmand-dbus.Tpo -c -o gsupplicant/src_connmand-dbus.o `test -f 'gsupplicant/dbus.c' || echo '$(srcdir)/'`gsupplicant/dbus.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gsupplicant/$(DEPDIR)/src_connmand-dbus.Tpo gsupplicant/$(DEPDIR)/src_connmand-dbus.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsupplicant/dbus.c' object='gsupplicant/src_connmand-dbus.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o gsupplicant/src_connmand-dbus.o `test -f 'gsupplicant/dbus.c' || echo '$(srcdir)/'`gsupplicant/dbus.c - -gsupplicant/src_connmand-dbus.obj: gsupplicant/dbus.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT gsupplicant/src_connmand-dbus.obj -MD -MP -MF gsupplicant/$(DEPDIR)/src_connmand-dbus.Tpo -c -o gsupplicant/src_connmand-dbus.obj `if test -f 'gsupplicant/dbus.c'; then $(CYGPATH_W) 'gsupplicant/dbus.c'; else $(CYGPATH_W) '$(srcdir)/gsupplicant/dbus.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gsupplicant/$(DEPDIR)/src_connmand-dbus.Tpo gsupplicant/$(DEPDIR)/src_connmand-dbus.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsupplicant/dbus.c' object='gsupplicant/src_connmand-dbus.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o gsupplicant/src_connmand-dbus.obj `if test -f 'gsupplicant/dbus.c'; then $(CYGPATH_W) 'gsupplicant/dbus.c'; else $(CYGPATH_W) '$(srcdir)/gsupplicant/dbus.c'; fi` - -plugins/src_connmand-bluetooth_legacy.o: plugins/bluetooth_legacy.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-bluetooth_legacy.o -MD -MP -MF plugins/$(DEPDIR)/src_connmand-bluetooth_legacy.Tpo -c -o plugins/src_connmand-bluetooth_legacy.o `test -f 'plugins/bluetooth_legacy.c' || echo '$(srcdir)/'`plugins/bluetooth_legacy.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-bluetooth_legacy.Tpo plugins/$(DEPDIR)/src_connmand-bluetooth_legacy.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/bluetooth_legacy.c' object='plugins/src_connmand-bluetooth_legacy.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-bluetooth_legacy.o `test -f 'plugins/bluetooth_legacy.c' || echo '$(srcdir)/'`plugins/bluetooth_legacy.c - -plugins/src_connmand-bluetooth_legacy.obj: plugins/bluetooth_legacy.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-bluetooth_legacy.obj -MD -MP -MF plugins/$(DEPDIR)/src_connmand-bluetooth_legacy.Tpo -c -o plugins/src_connmand-bluetooth_legacy.obj `if test -f 'plugins/bluetooth_legacy.c'; then $(CYGPATH_W) 'plugins/bluetooth_legacy.c'; else $(CYGPATH_W) '$(srcdir)/plugins/bluetooth_legacy.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-bluetooth_legacy.Tpo plugins/$(DEPDIR)/src_connmand-bluetooth_legacy.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/bluetooth_legacy.c' object='plugins/src_connmand-bluetooth_legacy.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-bluetooth_legacy.obj `if test -f 'plugins/bluetooth_legacy.c'; then $(CYGPATH_W) 'plugins/bluetooth_legacy.c'; else $(CYGPATH_W) '$(srcdir)/plugins/bluetooth_legacy.c'; fi` - -plugins/src_connmand-bluetooth.o: plugins/bluetooth.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-bluetooth.o -MD -MP -MF plugins/$(DEPDIR)/src_connmand-bluetooth.Tpo -c -o plugins/src_connmand-bluetooth.o `test -f 'plugins/bluetooth.c' || echo '$(srcdir)/'`plugins/bluetooth.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-bluetooth.Tpo plugins/$(DEPDIR)/src_connmand-bluetooth.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/bluetooth.c' object='plugins/src_connmand-bluetooth.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-bluetooth.o `test -f 'plugins/bluetooth.c' || echo '$(srcdir)/'`plugins/bluetooth.c - -plugins/src_connmand-bluetooth.obj: plugins/bluetooth.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-bluetooth.obj -MD -MP -MF plugins/$(DEPDIR)/src_connmand-bluetooth.Tpo -c -o plugins/src_connmand-bluetooth.obj `if test -f 'plugins/bluetooth.c'; then $(CYGPATH_W) 'plugins/bluetooth.c'; else $(CYGPATH_W) '$(srcdir)/plugins/bluetooth.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-bluetooth.Tpo plugins/$(DEPDIR)/src_connmand-bluetooth.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/bluetooth.c' object='plugins/src_connmand-bluetooth.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-bluetooth.obj `if test -f 'plugins/bluetooth.c'; then $(CYGPATH_W) 'plugins/bluetooth.c'; else $(CYGPATH_W) '$(srcdir)/plugins/bluetooth.c'; fi` - -plugins/src_connmand-hh2serial-gps.o: plugins/hh2serial-gps.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-hh2serial-gps.o -MD -MP -MF plugins/$(DEPDIR)/src_connmand-hh2serial-gps.Tpo -c -o plugins/src_connmand-hh2serial-gps.o `test -f 'plugins/hh2serial-gps.c' || echo '$(srcdir)/'`plugins/hh2serial-gps.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-hh2serial-gps.Tpo plugins/$(DEPDIR)/src_connmand-hh2serial-gps.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/hh2serial-gps.c' object='plugins/src_connmand-hh2serial-gps.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-hh2serial-gps.o `test -f 'plugins/hh2serial-gps.c' || echo '$(srcdir)/'`plugins/hh2serial-gps.c - -plugins/src_connmand-hh2serial-gps.obj: plugins/hh2serial-gps.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-hh2serial-gps.obj -MD -MP -MF plugins/$(DEPDIR)/src_connmand-hh2serial-gps.Tpo -c -o plugins/src_connmand-hh2serial-gps.obj `if test -f 'plugins/hh2serial-gps.c'; then $(CYGPATH_W) 'plugins/hh2serial-gps.c'; else $(CYGPATH_W) '$(srcdir)/plugins/hh2serial-gps.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-hh2serial-gps.Tpo plugins/$(DEPDIR)/src_connmand-hh2serial-gps.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/hh2serial-gps.c' object='plugins/src_connmand-hh2serial-gps.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-hh2serial-gps.obj `if test -f 'plugins/hh2serial-gps.c'; then $(CYGPATH_W) 'plugins/hh2serial-gps.c'; else $(CYGPATH_W) '$(srcdir)/plugins/hh2serial-gps.c'; fi` - -plugins/src_connmand-ofono.o: plugins/ofono.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-ofono.o -MD -MP -MF plugins/$(DEPDIR)/src_connmand-ofono.Tpo -c -o plugins/src_connmand-ofono.o `test -f 'plugins/ofono.c' || echo '$(srcdir)/'`plugins/ofono.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-ofono.Tpo plugins/$(DEPDIR)/src_connmand-ofono.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/ofono.c' object='plugins/src_connmand-ofono.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-ofono.o `test -f 'plugins/ofono.c' || echo '$(srcdir)/'`plugins/ofono.c - -plugins/src_connmand-ofono.obj: plugins/ofono.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-ofono.obj -MD -MP -MF plugins/$(DEPDIR)/src_connmand-ofono.Tpo -c -o plugins/src_connmand-ofono.obj `if test -f 'plugins/ofono.c'; then $(CYGPATH_W) 'plugins/ofono.c'; else $(CYGPATH_W) '$(srcdir)/plugins/ofono.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-ofono.Tpo plugins/$(DEPDIR)/src_connmand-ofono.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/ofono.c' object='plugins/src_connmand-ofono.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-ofono.obj `if test -f 'plugins/ofono.c'; then $(CYGPATH_W) 'plugins/ofono.c'; else $(CYGPATH_W) '$(srcdir)/plugins/ofono.c'; fi` - -plugins/src_connmand-dundee.o: plugins/dundee.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-dundee.o -MD -MP -MF plugins/$(DEPDIR)/src_connmand-dundee.Tpo -c -o plugins/src_connmand-dundee.o `test -f 'plugins/dundee.c' || echo '$(srcdir)/'`plugins/dundee.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-dundee.Tpo plugins/$(DEPDIR)/src_connmand-dundee.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/dundee.c' object='plugins/src_connmand-dundee.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-dundee.o `test -f 'plugins/dundee.c' || echo '$(srcdir)/'`plugins/dundee.c - -plugins/src_connmand-dundee.obj: plugins/dundee.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-dundee.obj -MD -MP -MF plugins/$(DEPDIR)/src_connmand-dundee.Tpo -c -o plugins/src_connmand-dundee.obj `if test -f 'plugins/dundee.c'; then $(CYGPATH_W) 'plugins/dundee.c'; else $(CYGPATH_W) '$(srcdir)/plugins/dundee.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-dundee.Tpo plugins/$(DEPDIR)/src_connmand-dundee.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/dundee.c' object='plugins/src_connmand-dundee.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-dundee.obj `if test -f 'plugins/dundee.c'; then $(CYGPATH_W) 'plugins/dundee.c'; else $(CYGPATH_W) '$(srcdir)/plugins/dundee.c'; fi` - -plugins/src_connmand-vpn.o: plugins/vpn.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-vpn.o -MD -MP -MF plugins/$(DEPDIR)/src_connmand-vpn.Tpo -c -o plugins/src_connmand-vpn.o `test -f 'plugins/vpn.c' || echo '$(srcdir)/'`plugins/vpn.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-vpn.Tpo plugins/$(DEPDIR)/src_connmand-vpn.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/vpn.c' object='plugins/src_connmand-vpn.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-vpn.o `test -f 'plugins/vpn.c' || echo '$(srcdir)/'`plugins/vpn.c - -plugins/src_connmand-vpn.obj: plugins/vpn.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-vpn.obj -MD -MP -MF plugins/$(DEPDIR)/src_connmand-vpn.Tpo -c -o plugins/src_connmand-vpn.obj `if test -f 'plugins/vpn.c'; then $(CYGPATH_W) 'plugins/vpn.c'; else $(CYGPATH_W) '$(srcdir)/plugins/vpn.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-vpn.Tpo plugins/$(DEPDIR)/src_connmand-vpn.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/vpn.c' object='plugins/src_connmand-vpn.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-vpn.obj `if test -f 'plugins/vpn.c'; then $(CYGPATH_W) 'plugins/vpn.c'; else $(CYGPATH_W) '$(srcdir)/plugins/vpn.c'; fi` - -plugins/src_connmand-pacrunner.o: plugins/pacrunner.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-pacrunner.o -MD -MP -MF plugins/$(DEPDIR)/src_connmand-pacrunner.Tpo -c -o plugins/src_connmand-pacrunner.o `test -f 'plugins/pacrunner.c' || echo '$(srcdir)/'`plugins/pacrunner.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-pacrunner.Tpo plugins/$(DEPDIR)/src_connmand-pacrunner.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/pacrunner.c' object='plugins/src_connmand-pacrunner.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-pacrunner.o `test -f 'plugins/pacrunner.c' || echo '$(srcdir)/'`plugins/pacrunner.c - -plugins/src_connmand-pacrunner.obj: plugins/pacrunner.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-pacrunner.obj -MD -MP -MF plugins/$(DEPDIR)/src_connmand-pacrunner.Tpo -c -o plugins/src_connmand-pacrunner.obj `if test -f 'plugins/pacrunner.c'; then $(CYGPATH_W) 'plugins/pacrunner.c'; else $(CYGPATH_W) '$(srcdir)/plugins/pacrunner.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-pacrunner.Tpo plugins/$(DEPDIR)/src_connmand-pacrunner.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/pacrunner.c' object='plugins/src_connmand-pacrunner.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-pacrunner.obj `if test -f 'plugins/pacrunner.c'; then $(CYGPATH_W) 'plugins/pacrunner.c'; else $(CYGPATH_W) '$(srcdir)/plugins/pacrunner.c'; fi` - -plugins/src_connmand-polkit.o: plugins/polkit.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-polkit.o -MD -MP -MF plugins/$(DEPDIR)/src_connmand-polkit.Tpo -c -o plugins/src_connmand-polkit.o `test -f 'plugins/polkit.c' || echo '$(srcdir)/'`plugins/polkit.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-polkit.Tpo plugins/$(DEPDIR)/src_connmand-polkit.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/polkit.c' object='plugins/src_connmand-polkit.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-polkit.o `test -f 'plugins/polkit.c' || echo '$(srcdir)/'`plugins/polkit.c - -plugins/src_connmand-polkit.obj: plugins/polkit.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-polkit.obj -MD -MP -MF plugins/$(DEPDIR)/src_connmand-polkit.Tpo -c -o plugins/src_connmand-polkit.obj `if test -f 'plugins/polkit.c'; then $(CYGPATH_W) 'plugins/polkit.c'; else $(CYGPATH_W) '$(srcdir)/plugins/polkit.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-polkit.Tpo plugins/$(DEPDIR)/src_connmand-polkit.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/polkit.c' object='plugins/src_connmand-polkit.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-polkit.obj `if test -f 'plugins/polkit.c'; then $(CYGPATH_W) 'plugins/polkit.c'; else $(CYGPATH_W) '$(srcdir)/plugins/polkit.c'; fi` - -plugins/src_connmand-nmcompat.o: plugins/nmcompat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-nmcompat.o -MD -MP -MF plugins/$(DEPDIR)/src_connmand-nmcompat.Tpo -c -o plugins/src_connmand-nmcompat.o `test -f 'plugins/nmcompat.c' || echo '$(srcdir)/'`plugins/nmcompat.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-nmcompat.Tpo plugins/$(DEPDIR)/src_connmand-nmcompat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/nmcompat.c' object='plugins/src_connmand-nmcompat.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-nmcompat.o `test -f 'plugins/nmcompat.c' || echo '$(srcdir)/'`plugins/nmcompat.c - -plugins/src_connmand-nmcompat.obj: plugins/nmcompat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-nmcompat.obj -MD -MP -MF plugins/$(DEPDIR)/src_connmand-nmcompat.Tpo -c -o plugins/src_connmand-nmcompat.obj `if test -f 'plugins/nmcompat.c'; then $(CYGPATH_W) 'plugins/nmcompat.c'; else $(CYGPATH_W) '$(srcdir)/plugins/nmcompat.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-nmcompat.Tpo plugins/$(DEPDIR)/src_connmand-nmcompat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/nmcompat.c' object='plugins/src_connmand-nmcompat.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-nmcompat.obj `if test -f 'plugins/nmcompat.c'; then $(CYGPATH_W) 'plugins/nmcompat.c'; else $(CYGPATH_W) '$(srcdir)/plugins/nmcompat.c'; fi` - -plugins/src_connmand-tist.o: plugins/tist.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-tist.o -MD -MP -MF plugins/$(DEPDIR)/src_connmand-tist.Tpo -c -o plugins/src_connmand-tist.o `test -f 'plugins/tist.c' || echo '$(srcdir)/'`plugins/tist.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-tist.Tpo plugins/$(DEPDIR)/src_connmand-tist.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/tist.c' object='plugins/src_connmand-tist.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-tist.o `test -f 'plugins/tist.c' || echo '$(srcdir)/'`plugins/tist.c - -plugins/src_connmand-tist.obj: plugins/tist.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-tist.obj -MD -MP -MF plugins/$(DEPDIR)/src_connmand-tist.Tpo -c -o plugins/src_connmand-tist.obj `if test -f 'plugins/tist.c'; then $(CYGPATH_W) 'plugins/tist.c'; else $(CYGPATH_W) '$(srcdir)/plugins/tist.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-tist.Tpo plugins/$(DEPDIR)/src_connmand-tist.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/tist.c' object='plugins/src_connmand-tist.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-tist.obj `if test -f 'plugins/tist.c'; then $(CYGPATH_W) 'plugins/tist.c'; else $(CYGPATH_W) '$(srcdir)/plugins/tist.c'; fi` - -plugins/src_connmand-session_policy_local.o: plugins/session_policy_local.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-session_policy_local.o -MD -MP -MF plugins/$(DEPDIR)/src_connmand-session_policy_local.Tpo -c -o plugins/src_connmand-session_policy_local.o `test -f 'plugins/session_policy_local.c' || echo '$(srcdir)/'`plugins/session_policy_local.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-session_policy_local.Tpo plugins/$(DEPDIR)/src_connmand-session_policy_local.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/session_policy_local.c' object='plugins/src_connmand-session_policy_local.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-session_policy_local.o `test -f 'plugins/session_policy_local.c' || echo '$(srcdir)/'`plugins/session_policy_local.c - -plugins/src_connmand-session_policy_local.obj: plugins/session_policy_local.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-session_policy_local.obj -MD -MP -MF plugins/$(DEPDIR)/src_connmand-session_policy_local.Tpo -c -o plugins/src_connmand-session_policy_local.obj `if test -f 'plugins/session_policy_local.c'; then $(CYGPATH_W) 'plugins/session_policy_local.c'; else $(CYGPATH_W) '$(srcdir)/plugins/session_policy_local.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-session_policy_local.Tpo plugins/$(DEPDIR)/src_connmand-session_policy_local.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/session_policy_local.c' object='plugins/src_connmand-session_policy_local.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-session_policy_local.obj `if test -f 'plugins/session_policy_local.c'; then $(CYGPATH_W) 'plugins/session_policy_local.c'; else $(CYGPATH_W) '$(srcdir)/plugins/session_policy_local.c'; fi` - -plugins/src_connmand-neard.o: plugins/neard.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-neard.o -MD -MP -MF plugins/$(DEPDIR)/src_connmand-neard.Tpo -c -o plugins/src_connmand-neard.o `test -f 'plugins/neard.c' || echo '$(srcdir)/'`plugins/neard.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-neard.Tpo plugins/$(DEPDIR)/src_connmand-neard.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/neard.c' object='plugins/src_connmand-neard.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-neard.o `test -f 'plugins/neard.c' || echo '$(srcdir)/'`plugins/neard.c - -plugins/src_connmand-neard.obj: plugins/neard.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT plugins/src_connmand-neard.obj -MD -MP -MF plugins/$(DEPDIR)/src_connmand-neard.Tpo -c -o plugins/src_connmand-neard.obj `if test -f 'plugins/neard.c'; then $(CYGPATH_W) 'plugins/neard.c'; else $(CYGPATH_W) '$(srcdir)/plugins/neard.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) plugins/$(DEPDIR)/src_connmand-neard.Tpo plugins/$(DEPDIR)/src_connmand-neard.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugins/neard.c' object='plugins/src_connmand-neard.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o plugins/src_connmand-neard.obj `if test -f 'plugins/neard.c'; then $(CYGPATH_W) 'plugins/neard.c'; else $(CYGPATH_W) '$(srcdir)/plugins/neard.c'; fi` - -src/shared/src_connmand-util.o: src/shared/util.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/shared/src_connmand-util.o -MD -MP -MF src/shared/$(DEPDIR)/src_connmand-util.Tpo -c -o src/shared/src_connmand-util.o `test -f 'src/shared/util.c' || echo '$(srcdir)/'`src/shared/util.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/shared/$(DEPDIR)/src_connmand-util.Tpo src/shared/$(DEPDIR)/src_connmand-util.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/shared/util.c' object='src/shared/src_connmand-util.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/shared/src_connmand-util.o `test -f 'src/shared/util.c' || echo '$(srcdir)/'`src/shared/util.c - -src/shared/src_connmand-util.obj: src/shared/util.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/shared/src_connmand-util.obj -MD -MP -MF src/shared/$(DEPDIR)/src_connmand-util.Tpo -c -o src/shared/src_connmand-util.obj `if test -f 'src/shared/util.c'; then $(CYGPATH_W) 'src/shared/util.c'; else $(CYGPATH_W) '$(srcdir)/src/shared/util.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/shared/$(DEPDIR)/src_connmand-util.Tpo src/shared/$(DEPDIR)/src_connmand-util.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/shared/util.c' object='src/shared/src_connmand-util.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/shared/src_connmand-util.obj `if test -f 'src/shared/util.c'; then $(CYGPATH_W) 'src/shared/util.c'; else $(CYGPATH_W) '$(srcdir)/src/shared/util.c'; fi` - -src/shared/src_connmand-netlink.o: src/shared/netlink.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/shared/src_connmand-netlink.o -MD -MP -MF src/shared/$(DEPDIR)/src_connmand-netlink.Tpo -c -o src/shared/src_connmand-netlink.o `test -f 'src/shared/netlink.c' || echo '$(srcdir)/'`src/shared/netlink.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/shared/$(DEPDIR)/src_connmand-netlink.Tpo src/shared/$(DEPDIR)/src_connmand-netlink.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/shared/netlink.c' object='src/shared/src_connmand-netlink.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/shared/src_connmand-netlink.o `test -f 'src/shared/netlink.c' || echo '$(srcdir)/'`src/shared/netlink.c - -src/shared/src_connmand-netlink.obj: src/shared/netlink.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/shared/src_connmand-netlink.obj -MD -MP -MF src/shared/$(DEPDIR)/src_connmand-netlink.Tpo -c -o src/shared/src_connmand-netlink.obj `if test -f 'src/shared/netlink.c'; then $(CYGPATH_W) 'src/shared/netlink.c'; else $(CYGPATH_W) '$(srcdir)/src/shared/netlink.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/shared/$(DEPDIR)/src_connmand-netlink.Tpo src/shared/$(DEPDIR)/src_connmand-netlink.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/shared/netlink.c' object='src/shared/src_connmand-netlink.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/shared/src_connmand-netlink.obj `if test -f 'src/shared/netlink.c'; then $(CYGPATH_W) 'src/shared/netlink.c'; else $(CYGPATH_W) '$(srcdir)/src/shared/netlink.c'; fi` - -src/src_connmand-main.o: src/main.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-main.o -MD -MP -MF src/$(DEPDIR)/src_connmand-main.Tpo -c -o src/src_connmand-main.o `test -f 'src/main.c' || echo '$(srcdir)/'`src/main.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-main.Tpo src/$(DEPDIR)/src_connmand-main.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/main.c' object='src/src_connmand-main.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-main.o `test -f 'src/main.c' || echo '$(srcdir)/'`src/main.c - -src/src_connmand-main.obj: src/main.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-main.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-main.Tpo -c -o src/src_connmand-main.obj `if test -f 'src/main.c'; then $(CYGPATH_W) 'src/main.c'; else $(CYGPATH_W) '$(srcdir)/src/main.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-main.Tpo src/$(DEPDIR)/src_connmand-main.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/main.c' object='src/src_connmand-main.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-main.obj `if test -f 'src/main.c'; then $(CYGPATH_W) 'src/main.c'; else $(CYGPATH_W) '$(srcdir)/src/main.c'; fi` - -src/src_connmand-log.o: src/log.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-log.o -MD -MP -MF src/$(DEPDIR)/src_connmand-log.Tpo -c -o src/src_connmand-log.o `test -f 'src/log.c' || echo '$(srcdir)/'`src/log.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-log.Tpo src/$(DEPDIR)/src_connmand-log.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/log.c' object='src/src_connmand-log.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-log.o `test -f 'src/log.c' || echo '$(srcdir)/'`src/log.c - -src/src_connmand-log.obj: src/log.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-log.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-log.Tpo -c -o src/src_connmand-log.obj `if test -f 'src/log.c'; then $(CYGPATH_W) 'src/log.c'; else $(CYGPATH_W) '$(srcdir)/src/log.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-log.Tpo src/$(DEPDIR)/src_connmand-log.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/log.c' object='src/src_connmand-log.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-log.obj `if test -f 'src/log.c'; then $(CYGPATH_W) 'src/log.c'; else $(CYGPATH_W) '$(srcdir)/src/log.c'; fi` - -src/src_connmand-error.o: src/error.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-error.o -MD -MP -MF src/$(DEPDIR)/src_connmand-error.Tpo -c -o src/src_connmand-error.o `test -f 'src/error.c' || echo '$(srcdir)/'`src/error.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-error.Tpo src/$(DEPDIR)/src_connmand-error.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/error.c' object='src/src_connmand-error.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-error.o `test -f 'src/error.c' || echo '$(srcdir)/'`src/error.c - -src/src_connmand-error.obj: src/error.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-error.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-error.Tpo -c -o src/src_connmand-error.obj `if test -f 'src/error.c'; then $(CYGPATH_W) 'src/error.c'; else $(CYGPATH_W) '$(srcdir)/src/error.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-error.Tpo src/$(DEPDIR)/src_connmand-error.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/error.c' object='src/src_connmand-error.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-error.obj `if test -f 'src/error.c'; then $(CYGPATH_W) 'src/error.c'; else $(CYGPATH_W) '$(srcdir)/src/error.c'; fi` - -src/src_connmand-plugin.o: src/plugin.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-plugin.o -MD -MP -MF src/$(DEPDIR)/src_connmand-plugin.Tpo -c -o src/src_connmand-plugin.o `test -f 'src/plugin.c' || echo '$(srcdir)/'`src/plugin.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-plugin.Tpo src/$(DEPDIR)/src_connmand-plugin.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/plugin.c' object='src/src_connmand-plugin.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-plugin.o `test -f 'src/plugin.c' || echo '$(srcdir)/'`src/plugin.c - -src/src_connmand-plugin.obj: src/plugin.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-plugin.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-plugin.Tpo -c -o src/src_connmand-plugin.obj `if test -f 'src/plugin.c'; then $(CYGPATH_W) 'src/plugin.c'; else $(CYGPATH_W) '$(srcdir)/src/plugin.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-plugin.Tpo src/$(DEPDIR)/src_connmand-plugin.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/plugin.c' object='src/src_connmand-plugin.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-plugin.obj `if test -f 'src/plugin.c'; then $(CYGPATH_W) 'src/plugin.c'; else $(CYGPATH_W) '$(srcdir)/src/plugin.c'; fi` - -src/src_connmand-task.o: src/task.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-task.o -MD -MP -MF src/$(DEPDIR)/src_connmand-task.Tpo -c -o src/src_connmand-task.o `test -f 'src/task.c' || echo '$(srcdir)/'`src/task.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-task.Tpo src/$(DEPDIR)/src_connmand-task.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/task.c' object='src/src_connmand-task.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-task.o `test -f 'src/task.c' || echo '$(srcdir)/'`src/task.c - -src/src_connmand-task.obj: src/task.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-task.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-task.Tpo -c -o src/src_connmand-task.obj `if test -f 'src/task.c'; then $(CYGPATH_W) 'src/task.c'; else $(CYGPATH_W) '$(srcdir)/src/task.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-task.Tpo src/$(DEPDIR)/src_connmand-task.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/task.c' object='src/src_connmand-task.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-task.obj `if test -f 'src/task.c'; then $(CYGPATH_W) 'src/task.c'; else $(CYGPATH_W) '$(srcdir)/src/task.c'; fi` - -src/src_connmand-device.o: src/device.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-device.o -MD -MP -MF src/$(DEPDIR)/src_connmand-device.Tpo -c -o src/src_connmand-device.o `test -f 'src/device.c' || echo '$(srcdir)/'`src/device.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-device.Tpo src/$(DEPDIR)/src_connmand-device.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/device.c' object='src/src_connmand-device.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-device.o `test -f 'src/device.c' || echo '$(srcdir)/'`src/device.c - -src/src_connmand-device.obj: src/device.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-device.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-device.Tpo -c -o src/src_connmand-device.obj `if test -f 'src/device.c'; then $(CYGPATH_W) 'src/device.c'; else $(CYGPATH_W) '$(srcdir)/src/device.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-device.Tpo src/$(DEPDIR)/src_connmand-device.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/device.c' object='src/src_connmand-device.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-device.obj `if test -f 'src/device.c'; then $(CYGPATH_W) 'src/device.c'; else $(CYGPATH_W) '$(srcdir)/src/device.c'; fi` - -src/src_connmand-network.o: src/network.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-network.o -MD -MP -MF src/$(DEPDIR)/src_connmand-network.Tpo -c -o src/src_connmand-network.o `test -f 'src/network.c' || echo '$(srcdir)/'`src/network.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-network.Tpo src/$(DEPDIR)/src_connmand-network.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/network.c' object='src/src_connmand-network.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-network.o `test -f 'src/network.c' || echo '$(srcdir)/'`src/network.c - -src/src_connmand-network.obj: src/network.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-network.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-network.Tpo -c -o src/src_connmand-network.obj `if test -f 'src/network.c'; then $(CYGPATH_W) 'src/network.c'; else $(CYGPATH_W) '$(srcdir)/src/network.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-network.Tpo src/$(DEPDIR)/src_connmand-network.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/network.c' object='src/src_connmand-network.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-network.obj `if test -f 'src/network.c'; then $(CYGPATH_W) 'src/network.c'; else $(CYGPATH_W) '$(srcdir)/src/network.c'; fi` - -src/src_connmand-connection.o: src/connection.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-connection.o -MD -MP -MF src/$(DEPDIR)/src_connmand-connection.Tpo -c -o src/src_connmand-connection.o `test -f 'src/connection.c' || echo '$(srcdir)/'`src/connection.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-connection.Tpo src/$(DEPDIR)/src_connmand-connection.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/connection.c' object='src/src_connmand-connection.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-connection.o `test -f 'src/connection.c' || echo '$(srcdir)/'`src/connection.c - -src/src_connmand-connection.obj: src/connection.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-connection.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-connection.Tpo -c -o src/src_connmand-connection.obj `if test -f 'src/connection.c'; then $(CYGPATH_W) 'src/connection.c'; else $(CYGPATH_W) '$(srcdir)/src/connection.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-connection.Tpo src/$(DEPDIR)/src_connmand-connection.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/connection.c' object='src/src_connmand-connection.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-connection.obj `if test -f 'src/connection.c'; then $(CYGPATH_W) 'src/connection.c'; else $(CYGPATH_W) '$(srcdir)/src/connection.c'; fi` - -src/src_connmand-manager.o: src/manager.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-manager.o -MD -MP -MF src/$(DEPDIR)/src_connmand-manager.Tpo -c -o src/src_connmand-manager.o `test -f 'src/manager.c' || echo '$(srcdir)/'`src/manager.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-manager.Tpo src/$(DEPDIR)/src_connmand-manager.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/manager.c' object='src/src_connmand-manager.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-manager.o `test -f 'src/manager.c' || echo '$(srcdir)/'`src/manager.c - -src/src_connmand-manager.obj: src/manager.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-manager.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-manager.Tpo -c -o src/src_connmand-manager.obj `if test -f 'src/manager.c'; then $(CYGPATH_W) 'src/manager.c'; else $(CYGPATH_W) '$(srcdir)/src/manager.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-manager.Tpo src/$(DEPDIR)/src_connmand-manager.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/manager.c' object='src/src_connmand-manager.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-manager.obj `if test -f 'src/manager.c'; then $(CYGPATH_W) 'src/manager.c'; else $(CYGPATH_W) '$(srcdir)/src/manager.c'; fi` - -src/src_connmand-service.o: src/service.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-service.o -MD -MP -MF src/$(DEPDIR)/src_connmand-service.Tpo -c -o src/src_connmand-service.o `test -f 'src/service.c' || echo '$(srcdir)/'`src/service.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-service.Tpo src/$(DEPDIR)/src_connmand-service.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/service.c' object='src/src_connmand-service.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-service.o `test -f 'src/service.c' || echo '$(srcdir)/'`src/service.c - -src/src_connmand-service.obj: src/service.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-service.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-service.Tpo -c -o src/src_connmand-service.obj `if test -f 'src/service.c'; then $(CYGPATH_W) 'src/service.c'; else $(CYGPATH_W) '$(srcdir)/src/service.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-service.Tpo src/$(DEPDIR)/src_connmand-service.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/service.c' object='src/src_connmand-service.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-service.obj `if test -f 'src/service.c'; then $(CYGPATH_W) 'src/service.c'; else $(CYGPATH_W) '$(srcdir)/src/service.c'; fi` - -src/src_connmand-clock.o: src/clock.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-clock.o -MD -MP -MF src/$(DEPDIR)/src_connmand-clock.Tpo -c -o src/src_connmand-clock.o `test -f 'src/clock.c' || echo '$(srcdir)/'`src/clock.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-clock.Tpo src/$(DEPDIR)/src_connmand-clock.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/clock.c' object='src/src_connmand-clock.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-clock.o `test -f 'src/clock.c' || echo '$(srcdir)/'`src/clock.c - -src/src_connmand-clock.obj: src/clock.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-clock.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-clock.Tpo -c -o src/src_connmand-clock.obj `if test -f 'src/clock.c'; then $(CYGPATH_W) 'src/clock.c'; else $(CYGPATH_W) '$(srcdir)/src/clock.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-clock.Tpo src/$(DEPDIR)/src_connmand-clock.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/clock.c' object='src/src_connmand-clock.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-clock.obj `if test -f 'src/clock.c'; then $(CYGPATH_W) 'src/clock.c'; else $(CYGPATH_W) '$(srcdir)/src/clock.c'; fi` - -src/src_connmand-timezone.o: src/timezone.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-timezone.o -MD -MP -MF src/$(DEPDIR)/src_connmand-timezone.Tpo -c -o src/src_connmand-timezone.o `test -f 'src/timezone.c' || echo '$(srcdir)/'`src/timezone.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-timezone.Tpo src/$(DEPDIR)/src_connmand-timezone.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/timezone.c' object='src/src_connmand-timezone.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-timezone.o `test -f 'src/timezone.c' || echo '$(srcdir)/'`src/timezone.c - -src/src_connmand-timezone.obj: src/timezone.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-timezone.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-timezone.Tpo -c -o src/src_connmand-timezone.obj `if test -f 'src/timezone.c'; then $(CYGPATH_W) 'src/timezone.c'; else $(CYGPATH_W) '$(srcdir)/src/timezone.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-timezone.Tpo src/$(DEPDIR)/src_connmand-timezone.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/timezone.c' object='src/src_connmand-timezone.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-timezone.obj `if test -f 'src/timezone.c'; then $(CYGPATH_W) 'src/timezone.c'; else $(CYGPATH_W) '$(srcdir)/src/timezone.c'; fi` - -src/src_connmand-agent-connman.o: src/agent-connman.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-agent-connman.o -MD -MP -MF src/$(DEPDIR)/src_connmand-agent-connman.Tpo -c -o src/src_connmand-agent-connman.o `test -f 'src/agent-connman.c' || echo '$(srcdir)/'`src/agent-connman.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-agent-connman.Tpo src/$(DEPDIR)/src_connmand-agent-connman.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/agent-connman.c' object='src/src_connmand-agent-connman.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-agent-connman.o `test -f 'src/agent-connman.c' || echo '$(srcdir)/'`src/agent-connman.c - -src/src_connmand-agent-connman.obj: src/agent-connman.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-agent-connman.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-agent-connman.Tpo -c -o src/src_connmand-agent-connman.obj `if test -f 'src/agent-connman.c'; then $(CYGPATH_W) 'src/agent-connman.c'; else $(CYGPATH_W) '$(srcdir)/src/agent-connman.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-agent-connman.Tpo src/$(DEPDIR)/src_connmand-agent-connman.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/agent-connman.c' object='src/src_connmand-agent-connman.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-agent-connman.obj `if test -f 'src/agent-connman.c'; then $(CYGPATH_W) 'src/agent-connman.c'; else $(CYGPATH_W) '$(srcdir)/src/agent-connman.c'; fi` - -src/src_connmand-agent.o: src/agent.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-agent.o -MD -MP -MF src/$(DEPDIR)/src_connmand-agent.Tpo -c -o src/src_connmand-agent.o `test -f 'src/agent.c' || echo '$(srcdir)/'`src/agent.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-agent.Tpo src/$(DEPDIR)/src_connmand-agent.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/agent.c' object='src/src_connmand-agent.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-agent.o `test -f 'src/agent.c' || echo '$(srcdir)/'`src/agent.c - -src/src_connmand-agent.obj: src/agent.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-agent.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-agent.Tpo -c -o src/src_connmand-agent.obj `if test -f 'src/agent.c'; then $(CYGPATH_W) 'src/agent.c'; else $(CYGPATH_W) '$(srcdir)/src/agent.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-agent.Tpo src/$(DEPDIR)/src_connmand-agent.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/agent.c' object='src/src_connmand-agent.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-agent.obj `if test -f 'src/agent.c'; then $(CYGPATH_W) 'src/agent.c'; else $(CYGPATH_W) '$(srcdir)/src/agent.c'; fi` - -src/src_connmand-notifier.o: src/notifier.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-notifier.o -MD -MP -MF src/$(DEPDIR)/src_connmand-notifier.Tpo -c -o src/src_connmand-notifier.o `test -f 'src/notifier.c' || echo '$(srcdir)/'`src/notifier.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-notifier.Tpo src/$(DEPDIR)/src_connmand-notifier.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/notifier.c' object='src/src_connmand-notifier.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-notifier.o `test -f 'src/notifier.c' || echo '$(srcdir)/'`src/notifier.c - -src/src_connmand-notifier.obj: src/notifier.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-notifier.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-notifier.Tpo -c -o src/src_connmand-notifier.obj `if test -f 'src/notifier.c'; then $(CYGPATH_W) 'src/notifier.c'; else $(CYGPATH_W) '$(srcdir)/src/notifier.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-notifier.Tpo src/$(DEPDIR)/src_connmand-notifier.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/notifier.c' object='src/src_connmand-notifier.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-notifier.obj `if test -f 'src/notifier.c'; then $(CYGPATH_W) 'src/notifier.c'; else $(CYGPATH_W) '$(srcdir)/src/notifier.c'; fi` - -src/src_connmand-provider.o: src/provider.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-provider.o -MD -MP -MF src/$(DEPDIR)/src_connmand-provider.Tpo -c -o src/src_connmand-provider.o `test -f 'src/provider.c' || echo '$(srcdir)/'`src/provider.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-provider.Tpo src/$(DEPDIR)/src_connmand-provider.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/provider.c' object='src/src_connmand-provider.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-provider.o `test -f 'src/provider.c' || echo '$(srcdir)/'`src/provider.c - -src/src_connmand-provider.obj: src/provider.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-provider.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-provider.Tpo -c -o src/src_connmand-provider.obj `if test -f 'src/provider.c'; then $(CYGPATH_W) 'src/provider.c'; else $(CYGPATH_W) '$(srcdir)/src/provider.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-provider.Tpo src/$(DEPDIR)/src_connmand-provider.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/provider.c' object='src/src_connmand-provider.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-provider.obj `if test -f 'src/provider.c'; then $(CYGPATH_W) 'src/provider.c'; else $(CYGPATH_W) '$(srcdir)/src/provider.c'; fi` - -src/src_connmand-resolver.o: src/resolver.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-resolver.o -MD -MP -MF src/$(DEPDIR)/src_connmand-resolver.Tpo -c -o src/src_connmand-resolver.o `test -f 'src/resolver.c' || echo '$(srcdir)/'`src/resolver.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-resolver.Tpo src/$(DEPDIR)/src_connmand-resolver.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/resolver.c' object='src/src_connmand-resolver.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-resolver.o `test -f 'src/resolver.c' || echo '$(srcdir)/'`src/resolver.c - -src/src_connmand-resolver.obj: src/resolver.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-resolver.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-resolver.Tpo -c -o src/src_connmand-resolver.obj `if test -f 'src/resolver.c'; then $(CYGPATH_W) 'src/resolver.c'; else $(CYGPATH_W) '$(srcdir)/src/resolver.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-resolver.Tpo src/$(DEPDIR)/src_connmand-resolver.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/resolver.c' object='src/src_connmand-resolver.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-resolver.obj `if test -f 'src/resolver.c'; then $(CYGPATH_W) 'src/resolver.c'; else $(CYGPATH_W) '$(srcdir)/src/resolver.c'; fi` - -src/src_connmand-ipconfig.o: src/ipconfig.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-ipconfig.o -MD -MP -MF src/$(DEPDIR)/src_connmand-ipconfig.Tpo -c -o src/src_connmand-ipconfig.o `test -f 'src/ipconfig.c' || echo '$(srcdir)/'`src/ipconfig.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-ipconfig.Tpo src/$(DEPDIR)/src_connmand-ipconfig.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/ipconfig.c' object='src/src_connmand-ipconfig.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-ipconfig.o `test -f 'src/ipconfig.c' || echo '$(srcdir)/'`src/ipconfig.c - -src/src_connmand-ipconfig.obj: src/ipconfig.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-ipconfig.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-ipconfig.Tpo -c -o src/src_connmand-ipconfig.obj `if test -f 'src/ipconfig.c'; then $(CYGPATH_W) 'src/ipconfig.c'; else $(CYGPATH_W) '$(srcdir)/src/ipconfig.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-ipconfig.Tpo src/$(DEPDIR)/src_connmand-ipconfig.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/ipconfig.c' object='src/src_connmand-ipconfig.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-ipconfig.obj `if test -f 'src/ipconfig.c'; then $(CYGPATH_W) 'src/ipconfig.c'; else $(CYGPATH_W) '$(srcdir)/src/ipconfig.c'; fi` - -src/src_connmand-detect.o: src/detect.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-detect.o -MD -MP -MF src/$(DEPDIR)/src_connmand-detect.Tpo -c -o src/src_connmand-detect.o `test -f 'src/detect.c' || echo '$(srcdir)/'`src/detect.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-detect.Tpo src/$(DEPDIR)/src_connmand-detect.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/detect.c' object='src/src_connmand-detect.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-detect.o `test -f 'src/detect.c' || echo '$(srcdir)/'`src/detect.c - -src/src_connmand-detect.obj: src/detect.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-detect.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-detect.Tpo -c -o src/src_connmand-detect.obj `if test -f 'src/detect.c'; then $(CYGPATH_W) 'src/detect.c'; else $(CYGPATH_W) '$(srcdir)/src/detect.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-detect.Tpo src/$(DEPDIR)/src_connmand-detect.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/detect.c' object='src/src_connmand-detect.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-detect.obj `if test -f 'src/detect.c'; then $(CYGPATH_W) 'src/detect.c'; else $(CYGPATH_W) '$(srcdir)/src/detect.c'; fi` - -src/src_connmand-inet.o: src/inet.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-inet.o -MD -MP -MF src/$(DEPDIR)/src_connmand-inet.Tpo -c -o src/src_connmand-inet.o `test -f 'src/inet.c' || echo '$(srcdir)/'`src/inet.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-inet.Tpo src/$(DEPDIR)/src_connmand-inet.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/inet.c' object='src/src_connmand-inet.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-inet.o `test -f 'src/inet.c' || echo '$(srcdir)/'`src/inet.c - -src/src_connmand-inet.obj: src/inet.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-inet.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-inet.Tpo -c -o src/src_connmand-inet.obj `if test -f 'src/inet.c'; then $(CYGPATH_W) 'src/inet.c'; else $(CYGPATH_W) '$(srcdir)/src/inet.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-inet.Tpo src/$(DEPDIR)/src_connmand-inet.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/inet.c' object='src/src_connmand-inet.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-inet.obj `if test -f 'src/inet.c'; then $(CYGPATH_W) 'src/inet.c'; else $(CYGPATH_W) '$(srcdir)/src/inet.c'; fi` - -src/src_connmand-dhcp.o: src/dhcp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-dhcp.o -MD -MP -MF src/$(DEPDIR)/src_connmand-dhcp.Tpo -c -o src/src_connmand-dhcp.o `test -f 'src/dhcp.c' || echo '$(srcdir)/'`src/dhcp.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-dhcp.Tpo src/$(DEPDIR)/src_connmand-dhcp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/dhcp.c' object='src/src_connmand-dhcp.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-dhcp.o `test -f 'src/dhcp.c' || echo '$(srcdir)/'`src/dhcp.c - -src/src_connmand-dhcp.obj: src/dhcp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-dhcp.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-dhcp.Tpo -c -o src/src_connmand-dhcp.obj `if test -f 'src/dhcp.c'; then $(CYGPATH_W) 'src/dhcp.c'; else $(CYGPATH_W) '$(srcdir)/src/dhcp.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-dhcp.Tpo src/$(DEPDIR)/src_connmand-dhcp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/dhcp.c' object='src/src_connmand-dhcp.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-dhcp.obj `if test -f 'src/dhcp.c'; then $(CYGPATH_W) 'src/dhcp.c'; else $(CYGPATH_W) '$(srcdir)/src/dhcp.c'; fi` - -src/src_connmand-dhcpv6.o: src/dhcpv6.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-dhcpv6.o -MD -MP -MF src/$(DEPDIR)/src_connmand-dhcpv6.Tpo -c -o src/src_connmand-dhcpv6.o `test -f 'src/dhcpv6.c' || echo '$(srcdir)/'`src/dhcpv6.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-dhcpv6.Tpo src/$(DEPDIR)/src_connmand-dhcpv6.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/dhcpv6.c' object='src/src_connmand-dhcpv6.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-dhcpv6.o `test -f 'src/dhcpv6.c' || echo '$(srcdir)/'`src/dhcpv6.c - -src/src_connmand-dhcpv6.obj: src/dhcpv6.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-dhcpv6.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-dhcpv6.Tpo -c -o src/src_connmand-dhcpv6.obj `if test -f 'src/dhcpv6.c'; then $(CYGPATH_W) 'src/dhcpv6.c'; else $(CYGPATH_W) '$(srcdir)/src/dhcpv6.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-dhcpv6.Tpo src/$(DEPDIR)/src_connmand-dhcpv6.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/dhcpv6.c' object='src/src_connmand-dhcpv6.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-dhcpv6.obj `if test -f 'src/dhcpv6.c'; then $(CYGPATH_W) 'src/dhcpv6.c'; else $(CYGPATH_W) '$(srcdir)/src/dhcpv6.c'; fi` - -src/src_connmand-rtnl.o: src/rtnl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-rtnl.o -MD -MP -MF src/$(DEPDIR)/src_connmand-rtnl.Tpo -c -o src/src_connmand-rtnl.o `test -f 'src/rtnl.c' || echo '$(srcdir)/'`src/rtnl.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-rtnl.Tpo src/$(DEPDIR)/src_connmand-rtnl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/rtnl.c' object='src/src_connmand-rtnl.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-rtnl.o `test -f 'src/rtnl.c' || echo '$(srcdir)/'`src/rtnl.c - -src/src_connmand-rtnl.obj: src/rtnl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-rtnl.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-rtnl.Tpo -c -o src/src_connmand-rtnl.obj `if test -f 'src/rtnl.c'; then $(CYGPATH_W) 'src/rtnl.c'; else $(CYGPATH_W) '$(srcdir)/src/rtnl.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-rtnl.Tpo src/$(DEPDIR)/src_connmand-rtnl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/rtnl.c' object='src/src_connmand-rtnl.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-rtnl.obj `if test -f 'src/rtnl.c'; then $(CYGPATH_W) 'src/rtnl.c'; else $(CYGPATH_W) '$(srcdir)/src/rtnl.c'; fi` - -src/src_connmand-proxy.o: src/proxy.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-proxy.o -MD -MP -MF src/$(DEPDIR)/src_connmand-proxy.Tpo -c -o src/src_connmand-proxy.o `test -f 'src/proxy.c' || echo '$(srcdir)/'`src/proxy.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-proxy.Tpo src/$(DEPDIR)/src_connmand-proxy.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/proxy.c' object='src/src_connmand-proxy.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-proxy.o `test -f 'src/proxy.c' || echo '$(srcdir)/'`src/proxy.c - -src/src_connmand-proxy.obj: src/proxy.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-proxy.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-proxy.Tpo -c -o src/src_connmand-proxy.obj `if test -f 'src/proxy.c'; then $(CYGPATH_W) 'src/proxy.c'; else $(CYGPATH_W) '$(srcdir)/src/proxy.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-proxy.Tpo src/$(DEPDIR)/src_connmand-proxy.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/proxy.c' object='src/src_connmand-proxy.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-proxy.obj `if test -f 'src/proxy.c'; then $(CYGPATH_W) 'src/proxy.c'; else $(CYGPATH_W) '$(srcdir)/src/proxy.c'; fi` - -src/src_connmand-utsname.o: src/utsname.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-utsname.o -MD -MP -MF src/$(DEPDIR)/src_connmand-utsname.Tpo -c -o src/src_connmand-utsname.o `test -f 'src/utsname.c' || echo '$(srcdir)/'`src/utsname.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-utsname.Tpo src/$(DEPDIR)/src_connmand-utsname.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/utsname.c' object='src/src_connmand-utsname.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-utsname.o `test -f 'src/utsname.c' || echo '$(srcdir)/'`src/utsname.c - -src/src_connmand-utsname.obj: src/utsname.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-utsname.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-utsname.Tpo -c -o src/src_connmand-utsname.obj `if test -f 'src/utsname.c'; then $(CYGPATH_W) 'src/utsname.c'; else $(CYGPATH_W) '$(srcdir)/src/utsname.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-utsname.Tpo src/$(DEPDIR)/src_connmand-utsname.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/utsname.c' object='src/src_connmand-utsname.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-utsname.obj `if test -f 'src/utsname.c'; then $(CYGPATH_W) 'src/utsname.c'; else $(CYGPATH_W) '$(srcdir)/src/utsname.c'; fi` - -src/src_connmand-timeserver.o: src/timeserver.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-timeserver.o -MD -MP -MF src/$(DEPDIR)/src_connmand-timeserver.Tpo -c -o src/src_connmand-timeserver.o `test -f 'src/timeserver.c' || echo '$(srcdir)/'`src/timeserver.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-timeserver.Tpo src/$(DEPDIR)/src_connmand-timeserver.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/timeserver.c' object='src/src_connmand-timeserver.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-timeserver.o `test -f 'src/timeserver.c' || echo '$(srcdir)/'`src/timeserver.c - -src/src_connmand-timeserver.obj: src/timeserver.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-timeserver.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-timeserver.Tpo -c -o src/src_connmand-timeserver.obj `if test -f 'src/timeserver.c'; then $(CYGPATH_W) 'src/timeserver.c'; else $(CYGPATH_W) '$(srcdir)/src/timeserver.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-timeserver.Tpo src/$(DEPDIR)/src_connmand-timeserver.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/timeserver.c' object='src/src_connmand-timeserver.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-timeserver.obj `if test -f 'src/timeserver.c'; then $(CYGPATH_W) 'src/timeserver.c'; else $(CYGPATH_W) '$(srcdir)/src/timeserver.c'; fi` - -src/src_connmand-rfkill.o: src/rfkill.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-rfkill.o -MD -MP -MF src/$(DEPDIR)/src_connmand-rfkill.Tpo -c -o src/src_connmand-rfkill.o `test -f 'src/rfkill.c' || echo '$(srcdir)/'`src/rfkill.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-rfkill.Tpo src/$(DEPDIR)/src_connmand-rfkill.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/rfkill.c' object='src/src_connmand-rfkill.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-rfkill.o `test -f 'src/rfkill.c' || echo '$(srcdir)/'`src/rfkill.c - -src/src_connmand-rfkill.obj: src/rfkill.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-rfkill.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-rfkill.Tpo -c -o src/src_connmand-rfkill.obj `if test -f 'src/rfkill.c'; then $(CYGPATH_W) 'src/rfkill.c'; else $(CYGPATH_W) '$(srcdir)/src/rfkill.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-rfkill.Tpo src/$(DEPDIR)/src_connmand-rfkill.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/rfkill.c' object='src/src_connmand-rfkill.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-rfkill.obj `if test -f 'src/rfkill.c'; then $(CYGPATH_W) 'src/rfkill.c'; else $(CYGPATH_W) '$(srcdir)/src/rfkill.c'; fi` - -src/src_connmand-storage.o: src/storage.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-storage.o -MD -MP -MF src/$(DEPDIR)/src_connmand-storage.Tpo -c -o src/src_connmand-storage.o `test -f 'src/storage.c' || echo '$(srcdir)/'`src/storage.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-storage.Tpo src/$(DEPDIR)/src_connmand-storage.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/storage.c' object='src/src_connmand-storage.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-storage.o `test -f 'src/storage.c' || echo '$(srcdir)/'`src/storage.c - -src/src_connmand-storage.obj: src/storage.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-storage.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-storage.Tpo -c -o src/src_connmand-storage.obj `if test -f 'src/storage.c'; then $(CYGPATH_W) 'src/storage.c'; else $(CYGPATH_W) '$(srcdir)/src/storage.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-storage.Tpo src/$(DEPDIR)/src_connmand-storage.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/storage.c' object='src/src_connmand-storage.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-storage.obj `if test -f 'src/storage.c'; then $(CYGPATH_W) 'src/storage.c'; else $(CYGPATH_W) '$(srcdir)/src/storage.c'; fi` - -src/src_connmand-dbus.o: src/dbus.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-dbus.o -MD -MP -MF src/$(DEPDIR)/src_connmand-dbus.Tpo -c -o src/src_connmand-dbus.o `test -f 'src/dbus.c' || echo '$(srcdir)/'`src/dbus.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-dbus.Tpo src/$(DEPDIR)/src_connmand-dbus.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/dbus.c' object='src/src_connmand-dbus.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-dbus.o `test -f 'src/dbus.c' || echo '$(srcdir)/'`src/dbus.c - -src/src_connmand-dbus.obj: src/dbus.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-dbus.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-dbus.Tpo -c -o src/src_connmand-dbus.obj `if test -f 'src/dbus.c'; then $(CYGPATH_W) 'src/dbus.c'; else $(CYGPATH_W) '$(srcdir)/src/dbus.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-dbus.Tpo src/$(DEPDIR)/src_connmand-dbus.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/dbus.c' object='src/src_connmand-dbus.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-dbus.obj `if test -f 'src/dbus.c'; then $(CYGPATH_W) 'src/dbus.c'; else $(CYGPATH_W) '$(srcdir)/src/dbus.c'; fi` - -src/src_connmand-config.o: src/config.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-config.o -MD -MP -MF src/$(DEPDIR)/src_connmand-config.Tpo -c -o src/src_connmand-config.o `test -f 'src/config.c' || echo '$(srcdir)/'`src/config.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-config.Tpo src/$(DEPDIR)/src_connmand-config.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/config.c' object='src/src_connmand-config.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-config.o `test -f 'src/config.c' || echo '$(srcdir)/'`src/config.c - -src/src_connmand-config.obj: src/config.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-config.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-config.Tpo -c -o src/src_connmand-config.obj `if test -f 'src/config.c'; then $(CYGPATH_W) 'src/config.c'; else $(CYGPATH_W) '$(srcdir)/src/config.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-config.Tpo src/$(DEPDIR)/src_connmand-config.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/config.c' object='src/src_connmand-config.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-config.obj `if test -f 'src/config.c'; then $(CYGPATH_W) 'src/config.c'; else $(CYGPATH_W) '$(srcdir)/src/config.c'; fi` - -src/src_connmand-technology.o: src/technology.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-technology.o -MD -MP -MF src/$(DEPDIR)/src_connmand-technology.Tpo -c -o src/src_connmand-technology.o `test -f 'src/technology.c' || echo '$(srcdir)/'`src/technology.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-technology.Tpo src/$(DEPDIR)/src_connmand-technology.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/technology.c' object='src/src_connmand-technology.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-technology.o `test -f 'src/technology.c' || echo '$(srcdir)/'`src/technology.c - -src/src_connmand-technology.obj: src/technology.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-technology.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-technology.Tpo -c -o src/src_connmand-technology.obj `if test -f 'src/technology.c'; then $(CYGPATH_W) 'src/technology.c'; else $(CYGPATH_W) '$(srcdir)/src/technology.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-technology.Tpo src/$(DEPDIR)/src_connmand-technology.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/technology.c' object='src/src_connmand-technology.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-technology.obj `if test -f 'src/technology.c'; then $(CYGPATH_W) 'src/technology.c'; else $(CYGPATH_W) '$(srcdir)/src/technology.c'; fi` - -src/src_connmand-counter.o: src/counter.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-counter.o -MD -MP -MF src/$(DEPDIR)/src_connmand-counter.Tpo -c -o src/src_connmand-counter.o `test -f 'src/counter.c' || echo '$(srcdir)/'`src/counter.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-counter.Tpo src/$(DEPDIR)/src_connmand-counter.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/counter.c' object='src/src_connmand-counter.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-counter.o `test -f 'src/counter.c' || echo '$(srcdir)/'`src/counter.c - -src/src_connmand-counter.obj: src/counter.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-counter.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-counter.Tpo -c -o src/src_connmand-counter.obj `if test -f 'src/counter.c'; then $(CYGPATH_W) 'src/counter.c'; else $(CYGPATH_W) '$(srcdir)/src/counter.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-counter.Tpo src/$(DEPDIR)/src_connmand-counter.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/counter.c' object='src/src_connmand-counter.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-counter.obj `if test -f 'src/counter.c'; then $(CYGPATH_W) 'src/counter.c'; else $(CYGPATH_W) '$(srcdir)/src/counter.c'; fi` - -src/src_connmand-ntp.o: src/ntp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-ntp.o -MD -MP -MF src/$(DEPDIR)/src_connmand-ntp.Tpo -c -o src/src_connmand-ntp.o `test -f 'src/ntp.c' || echo '$(srcdir)/'`src/ntp.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-ntp.Tpo src/$(DEPDIR)/src_connmand-ntp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/ntp.c' object='src/src_connmand-ntp.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-ntp.o `test -f 'src/ntp.c' || echo '$(srcdir)/'`src/ntp.c - -src/src_connmand-ntp.obj: src/ntp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-ntp.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-ntp.Tpo -c -o src/src_connmand-ntp.obj `if test -f 'src/ntp.c'; then $(CYGPATH_W) 'src/ntp.c'; else $(CYGPATH_W) '$(srcdir)/src/ntp.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-ntp.Tpo src/$(DEPDIR)/src_connmand-ntp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/ntp.c' object='src/src_connmand-ntp.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-ntp.obj `if test -f 'src/ntp.c'; then $(CYGPATH_W) 'src/ntp.c'; else $(CYGPATH_W) '$(srcdir)/src/ntp.c'; fi` - -src/src_connmand-session.o: src/session.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-session.o -MD -MP -MF src/$(DEPDIR)/src_connmand-session.Tpo -c -o src/src_connmand-session.o `test -f 'src/session.c' || echo '$(srcdir)/'`src/session.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-session.Tpo src/$(DEPDIR)/src_connmand-session.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/session.c' object='src/src_connmand-session.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-session.o `test -f 'src/session.c' || echo '$(srcdir)/'`src/session.c - -src/src_connmand-session.obj: src/session.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-session.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-session.Tpo -c -o src/src_connmand-session.obj `if test -f 'src/session.c'; then $(CYGPATH_W) 'src/session.c'; else $(CYGPATH_W) '$(srcdir)/src/session.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-session.Tpo src/$(DEPDIR)/src_connmand-session.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/session.c' object='src/src_connmand-session.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-session.obj `if test -f 'src/session.c'; then $(CYGPATH_W) 'src/session.c'; else $(CYGPATH_W) '$(srcdir)/src/session.c'; fi` - -src/src_connmand-tethering.o: src/tethering.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-tethering.o -MD -MP -MF src/$(DEPDIR)/src_connmand-tethering.Tpo -c -o src/src_connmand-tethering.o `test -f 'src/tethering.c' || echo '$(srcdir)/'`src/tethering.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-tethering.Tpo src/$(DEPDIR)/src_connmand-tethering.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/tethering.c' object='src/src_connmand-tethering.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-tethering.o `test -f 'src/tethering.c' || echo '$(srcdir)/'`src/tethering.c - -src/src_connmand-tethering.obj: src/tethering.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-tethering.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-tethering.Tpo -c -o src/src_connmand-tethering.obj `if test -f 'src/tethering.c'; then $(CYGPATH_W) 'src/tethering.c'; else $(CYGPATH_W) '$(srcdir)/src/tethering.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-tethering.Tpo src/$(DEPDIR)/src_connmand-tethering.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/tethering.c' object='src/src_connmand-tethering.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-tethering.obj `if test -f 'src/tethering.c'; then $(CYGPATH_W) 'src/tethering.c'; else $(CYGPATH_W) '$(srcdir)/src/tethering.c'; fi` - -src/src_connmand-wpad.o: src/wpad.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-wpad.o -MD -MP -MF src/$(DEPDIR)/src_connmand-wpad.Tpo -c -o src/src_connmand-wpad.o `test -f 'src/wpad.c' || echo '$(srcdir)/'`src/wpad.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-wpad.Tpo src/$(DEPDIR)/src_connmand-wpad.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/wpad.c' object='src/src_connmand-wpad.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-wpad.o `test -f 'src/wpad.c' || echo '$(srcdir)/'`src/wpad.c - -src/src_connmand-wpad.obj: src/wpad.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-wpad.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-wpad.Tpo -c -o src/src_connmand-wpad.obj `if test -f 'src/wpad.c'; then $(CYGPATH_W) 'src/wpad.c'; else $(CYGPATH_W) '$(srcdir)/src/wpad.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-wpad.Tpo src/$(DEPDIR)/src_connmand-wpad.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/wpad.c' object='src/src_connmand-wpad.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-wpad.obj `if test -f 'src/wpad.c'; then $(CYGPATH_W) 'src/wpad.c'; else $(CYGPATH_W) '$(srcdir)/src/wpad.c'; fi` - -src/src_connmand-wispr.o: src/wispr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-wispr.o -MD -MP -MF src/$(DEPDIR)/src_connmand-wispr.Tpo -c -o src/src_connmand-wispr.o `test -f 'src/wispr.c' || echo '$(srcdir)/'`src/wispr.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-wispr.Tpo src/$(DEPDIR)/src_connmand-wispr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/wispr.c' object='src/src_connmand-wispr.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-wispr.o `test -f 'src/wispr.c' || echo '$(srcdir)/'`src/wispr.c - -src/src_connmand-wispr.obj: src/wispr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-wispr.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-wispr.Tpo -c -o src/src_connmand-wispr.obj `if test -f 'src/wispr.c'; then $(CYGPATH_W) 'src/wispr.c'; else $(CYGPATH_W) '$(srcdir)/src/wispr.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-wispr.Tpo src/$(DEPDIR)/src_connmand-wispr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/wispr.c' object='src/src_connmand-wispr.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-wispr.obj `if test -f 'src/wispr.c'; then $(CYGPATH_W) 'src/wispr.c'; else $(CYGPATH_W) '$(srcdir)/src/wispr.c'; fi` - -src/src_connmand-stats.o: src/stats.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-stats.o -MD -MP -MF src/$(DEPDIR)/src_connmand-stats.Tpo -c -o src/src_connmand-stats.o `test -f 'src/stats.c' || echo '$(srcdir)/'`src/stats.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-stats.Tpo src/$(DEPDIR)/src_connmand-stats.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/stats.c' object='src/src_connmand-stats.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-stats.o `test -f 'src/stats.c' || echo '$(srcdir)/'`src/stats.c - -src/src_connmand-stats.obj: src/stats.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-stats.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-stats.Tpo -c -o src/src_connmand-stats.obj `if test -f 'src/stats.c'; then $(CYGPATH_W) 'src/stats.c'; else $(CYGPATH_W) '$(srcdir)/src/stats.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-stats.Tpo src/$(DEPDIR)/src_connmand-stats.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/stats.c' object='src/src_connmand-stats.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-stats.obj `if test -f 'src/stats.c'; then $(CYGPATH_W) 'src/stats.c'; else $(CYGPATH_W) '$(srcdir)/src/stats.c'; fi` - -src/src_connmand-iptables.o: src/iptables.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-iptables.o -MD -MP -MF src/$(DEPDIR)/src_connmand-iptables.Tpo -c -o src/src_connmand-iptables.o `test -f 'src/iptables.c' || echo '$(srcdir)/'`src/iptables.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-iptables.Tpo src/$(DEPDIR)/src_connmand-iptables.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/iptables.c' object='src/src_connmand-iptables.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-iptables.o `test -f 'src/iptables.c' || echo '$(srcdir)/'`src/iptables.c - -src/src_connmand-iptables.obj: src/iptables.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-iptables.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-iptables.Tpo -c -o src/src_connmand-iptables.obj `if test -f 'src/iptables.c'; then $(CYGPATH_W) 'src/iptables.c'; else $(CYGPATH_W) '$(srcdir)/src/iptables.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-iptables.Tpo src/$(DEPDIR)/src_connmand-iptables.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/iptables.c' object='src/src_connmand-iptables.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-iptables.obj `if test -f 'src/iptables.c'; then $(CYGPATH_W) 'src/iptables.c'; else $(CYGPATH_W) '$(srcdir)/src/iptables.c'; fi` - -src/src_connmand-dnsproxy.o: src/dnsproxy.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-dnsproxy.o -MD -MP -MF src/$(DEPDIR)/src_connmand-dnsproxy.Tpo -c -o src/src_connmand-dnsproxy.o `test -f 'src/dnsproxy.c' || echo '$(srcdir)/'`src/dnsproxy.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-dnsproxy.Tpo src/$(DEPDIR)/src_connmand-dnsproxy.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/dnsproxy.c' object='src/src_connmand-dnsproxy.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-dnsproxy.o `test -f 'src/dnsproxy.c' || echo '$(srcdir)/'`src/dnsproxy.c - -src/src_connmand-dnsproxy.obj: src/dnsproxy.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-dnsproxy.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-dnsproxy.Tpo -c -o src/src_connmand-dnsproxy.obj `if test -f 'src/dnsproxy.c'; then $(CYGPATH_W) 'src/dnsproxy.c'; else $(CYGPATH_W) '$(srcdir)/src/dnsproxy.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-dnsproxy.Tpo src/$(DEPDIR)/src_connmand-dnsproxy.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/dnsproxy.c' object='src/src_connmand-dnsproxy.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-dnsproxy.obj `if test -f 'src/dnsproxy.c'; then $(CYGPATH_W) 'src/dnsproxy.c'; else $(CYGPATH_W) '$(srcdir)/src/dnsproxy.c'; fi` - -src/src_connmand-6to4.o: src/6to4.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-6to4.o -MD -MP -MF src/$(DEPDIR)/src_connmand-6to4.Tpo -c -o src/src_connmand-6to4.o `test -f 'src/6to4.c' || echo '$(srcdir)/'`src/6to4.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-6to4.Tpo src/$(DEPDIR)/src_connmand-6to4.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/6to4.c' object='src/src_connmand-6to4.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-6to4.o `test -f 'src/6to4.c' || echo '$(srcdir)/'`src/6to4.c - -src/src_connmand-6to4.obj: src/6to4.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-6to4.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-6to4.Tpo -c -o src/src_connmand-6to4.obj `if test -f 'src/6to4.c'; then $(CYGPATH_W) 'src/6to4.c'; else $(CYGPATH_W) '$(srcdir)/src/6to4.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-6to4.Tpo src/$(DEPDIR)/src_connmand-6to4.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/6to4.c' object='src/src_connmand-6to4.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-6to4.obj `if test -f 'src/6to4.c'; then $(CYGPATH_W) 'src/6to4.c'; else $(CYGPATH_W) '$(srcdir)/src/6to4.c'; fi` - -src/src_connmand-ippool.o: src/ippool.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-ippool.o -MD -MP -MF src/$(DEPDIR)/src_connmand-ippool.Tpo -c -o src/src_connmand-ippool.o `test -f 'src/ippool.c' || echo '$(srcdir)/'`src/ippool.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-ippool.Tpo src/$(DEPDIR)/src_connmand-ippool.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/ippool.c' object='src/src_connmand-ippool.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-ippool.o `test -f 'src/ippool.c' || echo '$(srcdir)/'`src/ippool.c - -src/src_connmand-ippool.obj: src/ippool.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-ippool.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-ippool.Tpo -c -o src/src_connmand-ippool.obj `if test -f 'src/ippool.c'; then $(CYGPATH_W) 'src/ippool.c'; else $(CYGPATH_W) '$(srcdir)/src/ippool.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-ippool.Tpo src/$(DEPDIR)/src_connmand-ippool.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/ippool.c' object='src/src_connmand-ippool.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-ippool.obj `if test -f 'src/ippool.c'; then $(CYGPATH_W) 'src/ippool.c'; else $(CYGPATH_W) '$(srcdir)/src/ippool.c'; fi` - -src/src_connmand-bridge.o: src/bridge.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-bridge.o -MD -MP -MF src/$(DEPDIR)/src_connmand-bridge.Tpo -c -o src/src_connmand-bridge.o `test -f 'src/bridge.c' || echo '$(srcdir)/'`src/bridge.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-bridge.Tpo src/$(DEPDIR)/src_connmand-bridge.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/bridge.c' object='src/src_connmand-bridge.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-bridge.o `test -f 'src/bridge.c' || echo '$(srcdir)/'`src/bridge.c - -src/src_connmand-bridge.obj: src/bridge.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-bridge.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-bridge.Tpo -c -o src/src_connmand-bridge.obj `if test -f 'src/bridge.c'; then $(CYGPATH_W) 'src/bridge.c'; else $(CYGPATH_W) '$(srcdir)/src/bridge.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-bridge.Tpo src/$(DEPDIR)/src_connmand-bridge.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/bridge.c' object='src/src_connmand-bridge.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-bridge.obj `if test -f 'src/bridge.c'; then $(CYGPATH_W) 'src/bridge.c'; else $(CYGPATH_W) '$(srcdir)/src/bridge.c'; fi` - -src/src_connmand-nat.o: src/nat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-nat.o -MD -MP -MF src/$(DEPDIR)/src_connmand-nat.Tpo -c -o src/src_connmand-nat.o `test -f 'src/nat.c' || echo '$(srcdir)/'`src/nat.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-nat.Tpo src/$(DEPDIR)/src_connmand-nat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/nat.c' object='src/src_connmand-nat.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-nat.o `test -f 'src/nat.c' || echo '$(srcdir)/'`src/nat.c - -src/src_connmand-nat.obj: src/nat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-nat.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-nat.Tpo -c -o src/src_connmand-nat.obj `if test -f 'src/nat.c'; then $(CYGPATH_W) 'src/nat.c'; else $(CYGPATH_W) '$(srcdir)/src/nat.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-nat.Tpo src/$(DEPDIR)/src_connmand-nat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/nat.c' object='src/src_connmand-nat.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-nat.obj `if test -f 'src/nat.c'; then $(CYGPATH_W) 'src/nat.c'; else $(CYGPATH_W) '$(srcdir)/src/nat.c'; fi` - -src/src_connmand-ipaddress.o: src/ipaddress.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-ipaddress.o -MD -MP -MF src/$(DEPDIR)/src_connmand-ipaddress.Tpo -c -o src/src_connmand-ipaddress.o `test -f 'src/ipaddress.c' || echo '$(srcdir)/'`src/ipaddress.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-ipaddress.Tpo src/$(DEPDIR)/src_connmand-ipaddress.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/ipaddress.c' object='src/src_connmand-ipaddress.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-ipaddress.o `test -f 'src/ipaddress.c' || echo '$(srcdir)/'`src/ipaddress.c - -src/src_connmand-ipaddress.obj: src/ipaddress.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-ipaddress.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-ipaddress.Tpo -c -o src/src_connmand-ipaddress.obj `if test -f 'src/ipaddress.c'; then $(CYGPATH_W) 'src/ipaddress.c'; else $(CYGPATH_W) '$(srcdir)/src/ipaddress.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-ipaddress.Tpo src/$(DEPDIR)/src_connmand-ipaddress.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/ipaddress.c' object='src/src_connmand-ipaddress.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-ipaddress.obj `if test -f 'src/ipaddress.c'; then $(CYGPATH_W) 'src/ipaddress.c'; else $(CYGPATH_W) '$(srcdir)/src/ipaddress.c'; fi` - -src/src_connmand-inotify.o: src/inotify.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-inotify.o -MD -MP -MF src/$(DEPDIR)/src_connmand-inotify.Tpo -c -o src/src_connmand-inotify.o `test -f 'src/inotify.c' || echo '$(srcdir)/'`src/inotify.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-inotify.Tpo src/$(DEPDIR)/src_connmand-inotify.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/inotify.c' object='src/src_connmand-inotify.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-inotify.o `test -f 'src/inotify.c' || echo '$(srcdir)/'`src/inotify.c - -src/src_connmand-inotify.obj: src/inotify.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-inotify.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-inotify.Tpo -c -o src/src_connmand-inotify.obj `if test -f 'src/inotify.c'; then $(CYGPATH_W) 'src/inotify.c'; else $(CYGPATH_W) '$(srcdir)/src/inotify.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-inotify.Tpo src/$(DEPDIR)/src_connmand-inotify.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/inotify.c' object='src/src_connmand-inotify.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-inotify.obj `if test -f 'src/inotify.c'; then $(CYGPATH_W) 'src/inotify.c'; else $(CYGPATH_W) '$(srcdir)/src/inotify.c'; fi` - -src/src_connmand-firewall.o: src/firewall.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-firewall.o -MD -MP -MF src/$(DEPDIR)/src_connmand-firewall.Tpo -c -o src/src_connmand-firewall.o `test -f 'src/firewall.c' || echo '$(srcdir)/'`src/firewall.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-firewall.Tpo src/$(DEPDIR)/src_connmand-firewall.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/firewall.c' object='src/src_connmand-firewall.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-firewall.o `test -f 'src/firewall.c' || echo '$(srcdir)/'`src/firewall.c - -src/src_connmand-firewall.obj: src/firewall.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-firewall.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-firewall.Tpo -c -o src/src_connmand-firewall.obj `if test -f 'src/firewall.c'; then $(CYGPATH_W) 'src/firewall.c'; else $(CYGPATH_W) '$(srcdir)/src/firewall.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-firewall.Tpo src/$(DEPDIR)/src_connmand-firewall.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/firewall.c' object='src/src_connmand-firewall.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-firewall.obj `if test -f 'src/firewall.c'; then $(CYGPATH_W) 'src/firewall.c'; else $(CYGPATH_W) '$(srcdir)/src/firewall.c'; fi` - -src/src_connmand-ipv6pd.o: src/ipv6pd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-ipv6pd.o -MD -MP -MF src/$(DEPDIR)/src_connmand-ipv6pd.Tpo -c -o src/src_connmand-ipv6pd.o `test -f 'src/ipv6pd.c' || echo '$(srcdir)/'`src/ipv6pd.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-ipv6pd.Tpo src/$(DEPDIR)/src_connmand-ipv6pd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/ipv6pd.c' object='src/src_connmand-ipv6pd.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-ipv6pd.o `test -f 'src/ipv6pd.c' || echo '$(srcdir)/'`src/ipv6pd.c - -src/src_connmand-ipv6pd.obj: src/ipv6pd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-ipv6pd.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-ipv6pd.Tpo -c -o src/src_connmand-ipv6pd.obj `if test -f 'src/ipv6pd.c'; then $(CYGPATH_W) 'src/ipv6pd.c'; else $(CYGPATH_W) '$(srcdir)/src/ipv6pd.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-ipv6pd.Tpo src/$(DEPDIR)/src_connmand-ipv6pd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/ipv6pd.c' object='src/src_connmand-ipv6pd.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-ipv6pd.obj `if test -f 'src/ipv6pd.c'; then $(CYGPATH_W) 'src/ipv6pd.c'; else $(CYGPATH_W) '$(srcdir)/src/ipv6pd.c'; fi` - -src/src_connmand-peer.o: src/peer.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-peer.o -MD -MP -MF src/$(DEPDIR)/src_connmand-peer.Tpo -c -o src/src_connmand-peer.o `test -f 'src/peer.c' || echo '$(srcdir)/'`src/peer.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-peer.Tpo src/$(DEPDIR)/src_connmand-peer.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/peer.c' object='src/src_connmand-peer.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-peer.o `test -f 'src/peer.c' || echo '$(srcdir)/'`src/peer.c - -src/src_connmand-peer.obj: src/peer.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-peer.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-peer.Tpo -c -o src/src_connmand-peer.obj `if test -f 'src/peer.c'; then $(CYGPATH_W) 'src/peer.c'; else $(CYGPATH_W) '$(srcdir)/src/peer.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-peer.Tpo src/$(DEPDIR)/src_connmand-peer.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/peer.c' object='src/src_connmand-peer.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-peer.obj `if test -f 'src/peer.c'; then $(CYGPATH_W) 'src/peer.c'; else $(CYGPATH_W) '$(srcdir)/src/peer.c'; fi` - -src/src_connmand-peer_service.o: src/peer_service.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-peer_service.o -MD -MP -MF src/$(DEPDIR)/src_connmand-peer_service.Tpo -c -o src/src_connmand-peer_service.o `test -f 'src/peer_service.c' || echo '$(srcdir)/'`src/peer_service.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-peer_service.Tpo src/$(DEPDIR)/src_connmand-peer_service.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/peer_service.c' object='src/src_connmand-peer_service.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-peer_service.o `test -f 'src/peer_service.c' || echo '$(srcdir)/'`src/peer_service.c - -src/src_connmand-peer_service.obj: src/peer_service.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-peer_service.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-peer_service.Tpo -c -o src/src_connmand-peer_service.obj `if test -f 'src/peer_service.c'; then $(CYGPATH_W) 'src/peer_service.c'; else $(CYGPATH_W) '$(srcdir)/src/peer_service.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-peer_service.Tpo src/$(DEPDIR)/src_connmand-peer_service.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/peer_service.c' object='src/src_connmand-peer_service.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-peer_service.obj `if test -f 'src/peer_service.c'; then $(CYGPATH_W) 'src/peer_service.c'; else $(CYGPATH_W) '$(srcdir)/src/peer_service.c'; fi` - -src/src_connmand-machine.o: src/machine.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-machine.o -MD -MP -MF src/$(DEPDIR)/src_connmand-machine.Tpo -c -o src/src_connmand-machine.o `test -f 'src/machine.c' || echo '$(srcdir)/'`src/machine.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-machine.Tpo src/$(DEPDIR)/src_connmand-machine.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/machine.c' object='src/src_connmand-machine.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-machine.o `test -f 'src/machine.c' || echo '$(srcdir)/'`src/machine.c - -src/src_connmand-machine.obj: src/machine.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-machine.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-machine.Tpo -c -o src/src_connmand-machine.obj `if test -f 'src/machine.c'; then $(CYGPATH_W) 'src/machine.c'; else $(CYGPATH_W) '$(srcdir)/src/machine.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-machine.Tpo src/$(DEPDIR)/src_connmand-machine.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/machine.c' object='src/src_connmand-machine.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-machine.obj `if test -f 'src/machine.c'; then $(CYGPATH_W) 'src/machine.c'; else $(CYGPATH_W) '$(srcdir)/src/machine.c'; fi` - -src/src_connmand-util.o: src/util.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-util.o -MD -MP -MF src/$(DEPDIR)/src_connmand-util.Tpo -c -o src/src_connmand-util.o `test -f 'src/util.c' || echo '$(srcdir)/'`src/util.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-util.Tpo src/$(DEPDIR)/src_connmand-util.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/util.c' object='src/src_connmand-util.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-util.o `test -f 'src/util.c' || echo '$(srcdir)/'`src/util.c - -src/src_connmand-util.obj: src/util.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -MT src/src_connmand-util.obj -MD -MP -MF src/$(DEPDIR)/src_connmand-util.Tpo -c -o src/src_connmand-util.obj `if test -f 'src/util.c'; then $(CYGPATH_W) 'src/util.c'; else $(CYGPATH_W) '$(srcdir)/src/util.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_connmand-util.Tpo src/$(DEPDIR)/src_connmand-util.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/util.c' object='src/src_connmand-util.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_connmand_CFLAGS) $(CFLAGS) -c -o src/src_connmand-util.obj `if test -f 'src/util.c'; then $(CYGPATH_W) 'src/util.c'; else $(CYGPATH_W) '$(srcdir)/src/util.c'; fi` - -src/tools_iptables_unit-log.o: src/log.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tools_iptables_unit_CFLAGS) $(CFLAGS) -MT src/tools_iptables_unit-log.o -MD -MP -MF src/$(DEPDIR)/tools_iptables_unit-log.Tpo -c -o src/tools_iptables_unit-log.o `test -f 'src/log.c' || echo '$(srcdir)/'`src/log.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/tools_iptables_unit-log.Tpo src/$(DEPDIR)/tools_iptables_unit-log.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/log.c' object='src/tools_iptables_unit-log.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tools_iptables_unit_CFLAGS) $(CFLAGS) -c -o src/tools_iptables_unit-log.o `test -f 'src/log.c' || echo '$(srcdir)/'`src/log.c - -src/tools_iptables_unit-log.obj: src/log.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tools_iptables_unit_CFLAGS) $(CFLAGS) -MT src/tools_iptables_unit-log.obj -MD -MP -MF src/$(DEPDIR)/tools_iptables_unit-log.Tpo -c -o src/tools_iptables_unit-log.obj `if test -f 'src/log.c'; then $(CYGPATH_W) 'src/log.c'; else $(CYGPATH_W) '$(srcdir)/src/log.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/tools_iptables_unit-log.Tpo src/$(DEPDIR)/tools_iptables_unit-log.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/log.c' object='src/tools_iptables_unit-log.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tools_iptables_unit_CFLAGS) $(CFLAGS) -c -o src/tools_iptables_unit-log.obj `if test -f 'src/log.c'; then $(CYGPATH_W) 'src/log.c'; else $(CYGPATH_W) '$(srcdir)/src/log.c'; fi` - -src/tools_iptables_unit-iptables.o: src/iptables.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tools_iptables_unit_CFLAGS) $(CFLAGS) -MT src/tools_iptables_unit-iptables.o -MD -MP -MF src/$(DEPDIR)/tools_iptables_unit-iptables.Tpo -c -o src/tools_iptables_unit-iptables.o `test -f 'src/iptables.c' || echo '$(srcdir)/'`src/iptables.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/tools_iptables_unit-iptables.Tpo src/$(DEPDIR)/tools_iptables_unit-iptables.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/iptables.c' object='src/tools_iptables_unit-iptables.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tools_iptables_unit_CFLAGS) $(CFLAGS) -c -o src/tools_iptables_unit-iptables.o `test -f 'src/iptables.c' || echo '$(srcdir)/'`src/iptables.c - -src/tools_iptables_unit-iptables.obj: src/iptables.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tools_iptables_unit_CFLAGS) $(CFLAGS) -MT src/tools_iptables_unit-iptables.obj -MD -MP -MF src/$(DEPDIR)/tools_iptables_unit-iptables.Tpo -c -o src/tools_iptables_unit-iptables.obj `if test -f 'src/iptables.c'; then $(CYGPATH_W) 'src/iptables.c'; else $(CYGPATH_W) '$(srcdir)/src/iptables.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/tools_iptables_unit-iptables.Tpo src/$(DEPDIR)/tools_iptables_unit-iptables.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/iptables.c' object='src/tools_iptables_unit-iptables.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tools_iptables_unit_CFLAGS) $(CFLAGS) -c -o src/tools_iptables_unit-iptables.obj `if test -f 'src/iptables.c'; then $(CYGPATH_W) 'src/iptables.c'; else $(CYGPATH_W) '$(srcdir)/src/iptables.c'; fi` - -src/tools_iptables_unit-firewall.o: src/firewall.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tools_iptables_unit_CFLAGS) $(CFLAGS) -MT src/tools_iptables_unit-firewall.o -MD -MP -MF src/$(DEPDIR)/tools_iptables_unit-firewall.Tpo -c -o src/tools_iptables_unit-firewall.o `test -f 'src/firewall.c' || echo '$(srcdir)/'`src/firewall.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/tools_iptables_unit-firewall.Tpo src/$(DEPDIR)/tools_iptables_unit-firewall.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/firewall.c' object='src/tools_iptables_unit-firewall.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tools_iptables_unit_CFLAGS) $(CFLAGS) -c -o src/tools_iptables_unit-firewall.o `test -f 'src/firewall.c' || echo '$(srcdir)/'`src/firewall.c - -src/tools_iptables_unit-firewall.obj: src/firewall.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tools_iptables_unit_CFLAGS) $(CFLAGS) -MT src/tools_iptables_unit-firewall.obj -MD -MP -MF src/$(DEPDIR)/tools_iptables_unit-firewall.Tpo -c -o src/tools_iptables_unit-firewall.obj `if test -f 'src/firewall.c'; then $(CYGPATH_W) 'src/firewall.c'; else $(CYGPATH_W) '$(srcdir)/src/firewall.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/tools_iptables_unit-firewall.Tpo src/$(DEPDIR)/tools_iptables_unit-firewall.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/firewall.c' object='src/tools_iptables_unit-firewall.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tools_iptables_unit_CFLAGS) $(CFLAGS) -c -o src/tools_iptables_unit-firewall.obj `if test -f 'src/firewall.c'; then $(CYGPATH_W) 'src/firewall.c'; else $(CYGPATH_W) '$(srcdir)/src/firewall.c'; fi` - -src/tools_iptables_unit-nat.o: src/nat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tools_iptables_unit_CFLAGS) $(CFLAGS) -MT src/tools_iptables_unit-nat.o -MD -MP -MF src/$(DEPDIR)/tools_iptables_unit-nat.Tpo -c -o src/tools_iptables_unit-nat.o `test -f 'src/nat.c' || echo '$(srcdir)/'`src/nat.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/tools_iptables_unit-nat.Tpo src/$(DEPDIR)/tools_iptables_unit-nat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/nat.c' object='src/tools_iptables_unit-nat.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tools_iptables_unit_CFLAGS) $(CFLAGS) -c -o src/tools_iptables_unit-nat.o `test -f 'src/nat.c' || echo '$(srcdir)/'`src/nat.c - -src/tools_iptables_unit-nat.obj: src/nat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tools_iptables_unit_CFLAGS) $(CFLAGS) -MT src/tools_iptables_unit-nat.obj -MD -MP -MF src/$(DEPDIR)/tools_iptables_unit-nat.Tpo -c -o src/tools_iptables_unit-nat.obj `if test -f 'src/nat.c'; then $(CYGPATH_W) 'src/nat.c'; else $(CYGPATH_W) '$(srcdir)/src/nat.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/tools_iptables_unit-nat.Tpo src/$(DEPDIR)/tools_iptables_unit-nat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/nat.c' object='src/tools_iptables_unit-nat.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tools_iptables_unit_CFLAGS) $(CFLAGS) -c -o src/tools_iptables_unit-nat.obj `if test -f 'src/nat.c'; then $(CYGPATH_W) 'src/nat.c'; else $(CYGPATH_W) '$(srcdir)/src/nat.c'; fi` - -tools/tools_iptables_unit-iptables-unit.o: tools/iptables-unit.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tools_iptables_unit_CFLAGS) $(CFLAGS) -MT tools/tools_iptables_unit-iptables-unit.o -MD -MP -MF tools/$(DEPDIR)/tools_iptables_unit-iptables-unit.Tpo -c -o tools/tools_iptables_unit-iptables-unit.o `test -f 'tools/iptables-unit.c' || echo '$(srcdir)/'`tools/iptables-unit.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) tools/$(DEPDIR)/tools_iptables_unit-iptables-unit.Tpo tools/$(DEPDIR)/tools_iptables_unit-iptables-unit.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tools/iptables-unit.c' object='tools/tools_iptables_unit-iptables-unit.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tools_iptables_unit_CFLAGS) $(CFLAGS) -c -o tools/tools_iptables_unit-iptables-unit.o `test -f 'tools/iptables-unit.c' || echo '$(srcdir)/'`tools/iptables-unit.c - -tools/tools_iptables_unit-iptables-unit.obj: tools/iptables-unit.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tools_iptables_unit_CFLAGS) $(CFLAGS) -MT tools/tools_iptables_unit-iptables-unit.obj -MD -MP -MF tools/$(DEPDIR)/tools_iptables_unit-iptables-unit.Tpo -c -o tools/tools_iptables_unit-iptables-unit.obj `if test -f 'tools/iptables-unit.c'; then $(CYGPATH_W) 'tools/iptables-unit.c'; else $(CYGPATH_W) '$(srcdir)/tools/iptables-unit.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) tools/$(DEPDIR)/tools_iptables_unit-iptables-unit.Tpo tools/$(DEPDIR)/tools_iptables_unit-iptables-unit.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tools/iptables-unit.c' object='tools/tools_iptables_unit-iptables-unit.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tools_iptables_unit_CFLAGS) $(CFLAGS) -c -o tools/tools_iptables_unit-iptables-unit.obj `if test -f 'tools/iptables-unit.c'; then $(CYGPATH_W) 'tools/iptables-unit.c'; else $(CYGPATH_W) '$(srcdir)/tools/iptables-unit.c'; fi` - -vpn/plugins/vpn_connman_vpnd-openconnect.o: vpn/plugins/openconnect.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT vpn/plugins/vpn_connman_vpnd-openconnect.o -MD -MP -MF vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-openconnect.Tpo -c -o vpn/plugins/vpn_connman_vpnd-openconnect.o `test -f 'vpn/plugins/openconnect.c' || echo '$(srcdir)/'`vpn/plugins/openconnect.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-openconnect.Tpo vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-openconnect.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/plugins/openconnect.c' object='vpn/plugins/vpn_connman_vpnd-openconnect.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o vpn/plugins/vpn_connman_vpnd-openconnect.o `test -f 'vpn/plugins/openconnect.c' || echo '$(srcdir)/'`vpn/plugins/openconnect.c - -vpn/plugins/vpn_connman_vpnd-openconnect.obj: vpn/plugins/openconnect.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT vpn/plugins/vpn_connman_vpnd-openconnect.obj -MD -MP -MF vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-openconnect.Tpo -c -o vpn/plugins/vpn_connman_vpnd-openconnect.obj `if test -f 'vpn/plugins/openconnect.c'; then $(CYGPATH_W) 'vpn/plugins/openconnect.c'; else $(CYGPATH_W) '$(srcdir)/vpn/plugins/openconnect.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-openconnect.Tpo vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-openconnect.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/plugins/openconnect.c' object='vpn/plugins/vpn_connman_vpnd-openconnect.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o vpn/plugins/vpn_connman_vpnd-openconnect.obj `if test -f 'vpn/plugins/openconnect.c'; then $(CYGPATH_W) 'vpn/plugins/openconnect.c'; else $(CYGPATH_W) '$(srcdir)/vpn/plugins/openconnect.c'; fi` - -vpn/plugins/vpn_connman_vpnd-openvpn.o: vpn/plugins/openvpn.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT vpn/plugins/vpn_connman_vpnd-openvpn.o -MD -MP -MF vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-openvpn.Tpo -c -o vpn/plugins/vpn_connman_vpnd-openvpn.o `test -f 'vpn/plugins/openvpn.c' || echo '$(srcdir)/'`vpn/plugins/openvpn.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-openvpn.Tpo vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-openvpn.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/plugins/openvpn.c' object='vpn/plugins/vpn_connman_vpnd-openvpn.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o vpn/plugins/vpn_connman_vpnd-openvpn.o `test -f 'vpn/plugins/openvpn.c' || echo '$(srcdir)/'`vpn/plugins/openvpn.c - -vpn/plugins/vpn_connman_vpnd-openvpn.obj: vpn/plugins/openvpn.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT vpn/plugins/vpn_connman_vpnd-openvpn.obj -MD -MP -MF vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-openvpn.Tpo -c -o vpn/plugins/vpn_connman_vpnd-openvpn.obj `if test -f 'vpn/plugins/openvpn.c'; then $(CYGPATH_W) 'vpn/plugins/openvpn.c'; else $(CYGPATH_W) '$(srcdir)/vpn/plugins/openvpn.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-openvpn.Tpo vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-openvpn.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/plugins/openvpn.c' object='vpn/plugins/vpn_connman_vpnd-openvpn.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o vpn/plugins/vpn_connman_vpnd-openvpn.obj `if test -f 'vpn/plugins/openvpn.c'; then $(CYGPATH_W) 'vpn/plugins/openvpn.c'; else $(CYGPATH_W) '$(srcdir)/vpn/plugins/openvpn.c'; fi` - -vpn/plugins/vpn_connman_vpnd-vpnc.o: vpn/plugins/vpnc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT vpn/plugins/vpn_connman_vpnd-vpnc.o -MD -MP -MF vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-vpnc.Tpo -c -o vpn/plugins/vpn_connman_vpnd-vpnc.o `test -f 'vpn/plugins/vpnc.c' || echo '$(srcdir)/'`vpn/plugins/vpnc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-vpnc.Tpo vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-vpnc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/plugins/vpnc.c' object='vpn/plugins/vpn_connman_vpnd-vpnc.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o vpn/plugins/vpn_connman_vpnd-vpnc.o `test -f 'vpn/plugins/vpnc.c' || echo '$(srcdir)/'`vpn/plugins/vpnc.c - -vpn/plugins/vpn_connman_vpnd-vpnc.obj: vpn/plugins/vpnc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT vpn/plugins/vpn_connman_vpnd-vpnc.obj -MD -MP -MF vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-vpnc.Tpo -c -o vpn/plugins/vpn_connman_vpnd-vpnc.obj `if test -f 'vpn/plugins/vpnc.c'; then $(CYGPATH_W) 'vpn/plugins/vpnc.c'; else $(CYGPATH_W) '$(srcdir)/vpn/plugins/vpnc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-vpnc.Tpo vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-vpnc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/plugins/vpnc.c' object='vpn/plugins/vpn_connman_vpnd-vpnc.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o vpn/plugins/vpn_connman_vpnd-vpnc.obj `if test -f 'vpn/plugins/vpnc.c'; then $(CYGPATH_W) 'vpn/plugins/vpnc.c'; else $(CYGPATH_W) '$(srcdir)/vpn/plugins/vpnc.c'; fi` - -vpn/plugins/vpn_connman_vpnd-l2tp.o: vpn/plugins/l2tp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT vpn/plugins/vpn_connman_vpnd-l2tp.o -MD -MP -MF vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-l2tp.Tpo -c -o vpn/plugins/vpn_connman_vpnd-l2tp.o `test -f 'vpn/plugins/l2tp.c' || echo '$(srcdir)/'`vpn/plugins/l2tp.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-l2tp.Tpo vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-l2tp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/plugins/l2tp.c' object='vpn/plugins/vpn_connman_vpnd-l2tp.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o vpn/plugins/vpn_connman_vpnd-l2tp.o `test -f 'vpn/plugins/l2tp.c' || echo '$(srcdir)/'`vpn/plugins/l2tp.c - -vpn/plugins/vpn_connman_vpnd-l2tp.obj: vpn/plugins/l2tp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT vpn/plugins/vpn_connman_vpnd-l2tp.obj -MD -MP -MF vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-l2tp.Tpo -c -o vpn/plugins/vpn_connman_vpnd-l2tp.obj `if test -f 'vpn/plugins/l2tp.c'; then $(CYGPATH_W) 'vpn/plugins/l2tp.c'; else $(CYGPATH_W) '$(srcdir)/vpn/plugins/l2tp.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-l2tp.Tpo vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-l2tp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/plugins/l2tp.c' object='vpn/plugins/vpn_connman_vpnd-l2tp.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o vpn/plugins/vpn_connman_vpnd-l2tp.obj `if test -f 'vpn/plugins/l2tp.c'; then $(CYGPATH_W) 'vpn/plugins/l2tp.c'; else $(CYGPATH_W) '$(srcdir)/vpn/plugins/l2tp.c'; fi` - -vpn/plugins/vpn_connman_vpnd-pptp.o: vpn/plugins/pptp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT vpn/plugins/vpn_connman_vpnd-pptp.o -MD -MP -MF vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-pptp.Tpo -c -o vpn/plugins/vpn_connman_vpnd-pptp.o `test -f 'vpn/plugins/pptp.c' || echo '$(srcdir)/'`vpn/plugins/pptp.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-pptp.Tpo vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-pptp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/plugins/pptp.c' object='vpn/plugins/vpn_connman_vpnd-pptp.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o vpn/plugins/vpn_connman_vpnd-pptp.o `test -f 'vpn/plugins/pptp.c' || echo '$(srcdir)/'`vpn/plugins/pptp.c - -vpn/plugins/vpn_connman_vpnd-pptp.obj: vpn/plugins/pptp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT vpn/plugins/vpn_connman_vpnd-pptp.obj -MD -MP -MF vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-pptp.Tpo -c -o vpn/plugins/vpn_connman_vpnd-pptp.obj `if test -f 'vpn/plugins/pptp.c'; then $(CYGPATH_W) 'vpn/plugins/pptp.c'; else $(CYGPATH_W) '$(srcdir)/vpn/plugins/pptp.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-pptp.Tpo vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-pptp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/plugins/pptp.c' object='vpn/plugins/vpn_connman_vpnd-pptp.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o vpn/plugins/vpn_connman_vpnd-pptp.obj `if test -f 'vpn/plugins/pptp.c'; then $(CYGPATH_W) 'vpn/plugins/pptp.c'; else $(CYGPATH_W) '$(srcdir)/vpn/plugins/pptp.c'; fi` - -vpn/plugins/vpn_connman_vpnd-vpn.o: vpn/plugins/vpn.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT vpn/plugins/vpn_connman_vpnd-vpn.o -MD -MP -MF vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-vpn.Tpo -c -o vpn/plugins/vpn_connman_vpnd-vpn.o `test -f 'vpn/plugins/vpn.c' || echo '$(srcdir)/'`vpn/plugins/vpn.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-vpn.Tpo vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-vpn.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/plugins/vpn.c' object='vpn/plugins/vpn_connman_vpnd-vpn.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o vpn/plugins/vpn_connman_vpnd-vpn.o `test -f 'vpn/plugins/vpn.c' || echo '$(srcdir)/'`vpn/plugins/vpn.c - -vpn/plugins/vpn_connman_vpnd-vpn.obj: vpn/plugins/vpn.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT vpn/plugins/vpn_connman_vpnd-vpn.obj -MD -MP -MF vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-vpn.Tpo -c -o vpn/plugins/vpn_connman_vpnd-vpn.obj `if test -f 'vpn/plugins/vpn.c'; then $(CYGPATH_W) 'vpn/plugins/vpn.c'; else $(CYGPATH_W) '$(srcdir)/vpn/plugins/vpn.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-vpn.Tpo vpn/plugins/$(DEPDIR)/vpn_connman_vpnd-vpn.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/plugins/vpn.c' object='vpn/plugins/vpn_connman_vpnd-vpn.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o vpn/plugins/vpn_connman_vpnd-vpn.obj `if test -f 'vpn/plugins/vpn.c'; then $(CYGPATH_W) 'vpn/plugins/vpn.c'; else $(CYGPATH_W) '$(srcdir)/vpn/plugins/vpn.c'; fi` - -gweb/vpn_connman_vpnd-gweb.o: gweb/gweb.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT gweb/vpn_connman_vpnd-gweb.o -MD -MP -MF gweb/$(DEPDIR)/vpn_connman_vpnd-gweb.Tpo -c -o gweb/vpn_connman_vpnd-gweb.o `test -f 'gweb/gweb.c' || echo '$(srcdir)/'`gweb/gweb.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gweb/$(DEPDIR)/vpn_connman_vpnd-gweb.Tpo gweb/$(DEPDIR)/vpn_connman_vpnd-gweb.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gweb/gweb.c' object='gweb/vpn_connman_vpnd-gweb.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o gweb/vpn_connman_vpnd-gweb.o `test -f 'gweb/gweb.c' || echo '$(srcdir)/'`gweb/gweb.c - -gweb/vpn_connman_vpnd-gweb.obj: gweb/gweb.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT gweb/vpn_connman_vpnd-gweb.obj -MD -MP -MF gweb/$(DEPDIR)/vpn_connman_vpnd-gweb.Tpo -c -o gweb/vpn_connman_vpnd-gweb.obj `if test -f 'gweb/gweb.c'; then $(CYGPATH_W) 'gweb/gweb.c'; else $(CYGPATH_W) '$(srcdir)/gweb/gweb.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gweb/$(DEPDIR)/vpn_connman_vpnd-gweb.Tpo gweb/$(DEPDIR)/vpn_connman_vpnd-gweb.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gweb/gweb.c' object='gweb/vpn_connman_vpnd-gweb.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o gweb/vpn_connman_vpnd-gweb.obj `if test -f 'gweb/gweb.c'; then $(CYGPATH_W) 'gweb/gweb.c'; else $(CYGPATH_W) '$(srcdir)/gweb/gweb.c'; fi` - -gweb/vpn_connman_vpnd-gresolv.o: gweb/gresolv.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT gweb/vpn_connman_vpnd-gresolv.o -MD -MP -MF gweb/$(DEPDIR)/vpn_connman_vpnd-gresolv.Tpo -c -o gweb/vpn_connman_vpnd-gresolv.o `test -f 'gweb/gresolv.c' || echo '$(srcdir)/'`gweb/gresolv.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gweb/$(DEPDIR)/vpn_connman_vpnd-gresolv.Tpo gweb/$(DEPDIR)/vpn_connman_vpnd-gresolv.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gweb/gresolv.c' object='gweb/vpn_connman_vpnd-gresolv.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o gweb/vpn_connman_vpnd-gresolv.o `test -f 'gweb/gresolv.c' || echo '$(srcdir)/'`gweb/gresolv.c - -gweb/vpn_connman_vpnd-gresolv.obj: gweb/gresolv.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT gweb/vpn_connman_vpnd-gresolv.obj -MD -MP -MF gweb/$(DEPDIR)/vpn_connman_vpnd-gresolv.Tpo -c -o gweb/vpn_connman_vpnd-gresolv.obj `if test -f 'gweb/gresolv.c'; then $(CYGPATH_W) 'gweb/gresolv.c'; else $(CYGPATH_W) '$(srcdir)/gweb/gresolv.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gweb/$(DEPDIR)/vpn_connman_vpnd-gresolv.Tpo gweb/$(DEPDIR)/vpn_connman_vpnd-gresolv.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gweb/gresolv.c' object='gweb/vpn_connman_vpnd-gresolv.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o gweb/vpn_connman_vpnd-gresolv.obj `if test -f 'gweb/gresolv.c'; then $(CYGPATH_W) 'gweb/gresolv.c'; else $(CYGPATH_W) '$(srcdir)/gweb/gresolv.c'; fi` - -gweb/vpn_connman_vpnd-giognutls.o: gweb/giognutls.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT gweb/vpn_connman_vpnd-giognutls.o -MD -MP -MF gweb/$(DEPDIR)/vpn_connman_vpnd-giognutls.Tpo -c -o gweb/vpn_connman_vpnd-giognutls.o `test -f 'gweb/giognutls.c' || echo '$(srcdir)/'`gweb/giognutls.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gweb/$(DEPDIR)/vpn_connman_vpnd-giognutls.Tpo gweb/$(DEPDIR)/vpn_connman_vpnd-giognutls.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gweb/giognutls.c' object='gweb/vpn_connman_vpnd-giognutls.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o gweb/vpn_connman_vpnd-giognutls.o `test -f 'gweb/giognutls.c' || echo '$(srcdir)/'`gweb/giognutls.c - -gweb/vpn_connman_vpnd-giognutls.obj: gweb/giognutls.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT gweb/vpn_connman_vpnd-giognutls.obj -MD -MP -MF gweb/$(DEPDIR)/vpn_connman_vpnd-giognutls.Tpo -c -o gweb/vpn_connman_vpnd-giognutls.obj `if test -f 'gweb/giognutls.c'; then $(CYGPATH_W) 'gweb/giognutls.c'; else $(CYGPATH_W) '$(srcdir)/gweb/giognutls.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gweb/$(DEPDIR)/vpn_connman_vpnd-giognutls.Tpo gweb/$(DEPDIR)/vpn_connman_vpnd-giognutls.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gweb/giognutls.c' object='gweb/vpn_connman_vpnd-giognutls.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o gweb/vpn_connman_vpnd-giognutls.obj `if test -f 'gweb/giognutls.c'; then $(CYGPATH_W) 'gweb/giognutls.c'; else $(CYGPATH_W) '$(srcdir)/gweb/giognutls.c'; fi` - -gweb/vpn_connman_vpnd-gionotls.o: gweb/gionotls.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT gweb/vpn_connman_vpnd-gionotls.o -MD -MP -MF gweb/$(DEPDIR)/vpn_connman_vpnd-gionotls.Tpo -c -o gweb/vpn_connman_vpnd-gionotls.o `test -f 'gweb/gionotls.c' || echo '$(srcdir)/'`gweb/gionotls.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gweb/$(DEPDIR)/vpn_connman_vpnd-gionotls.Tpo gweb/$(DEPDIR)/vpn_connman_vpnd-gionotls.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gweb/gionotls.c' object='gweb/vpn_connman_vpnd-gionotls.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o gweb/vpn_connman_vpnd-gionotls.o `test -f 'gweb/gionotls.c' || echo '$(srcdir)/'`gweb/gionotls.c - -gweb/vpn_connman_vpnd-gionotls.obj: gweb/gionotls.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT gweb/vpn_connman_vpnd-gionotls.obj -MD -MP -MF gweb/$(DEPDIR)/vpn_connman_vpnd-gionotls.Tpo -c -o gweb/vpn_connman_vpnd-gionotls.obj `if test -f 'gweb/gionotls.c'; then $(CYGPATH_W) 'gweb/gionotls.c'; else $(CYGPATH_W) '$(srcdir)/gweb/gionotls.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) gweb/$(DEPDIR)/vpn_connman_vpnd-gionotls.Tpo gweb/$(DEPDIR)/vpn_connman_vpnd-gionotls.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gweb/gionotls.c' object='gweb/vpn_connman_vpnd-gionotls.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o gweb/vpn_connman_vpnd-gionotls.obj `if test -f 'gweb/gionotls.c'; then $(CYGPATH_W) 'gweb/gionotls.c'; else $(CYGPATH_W) '$(srcdir)/gweb/gionotls.c'; fi` - -vpn/vpn_connman_vpnd-main.o: vpn/main.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT vpn/vpn_connman_vpnd-main.o -MD -MP -MF vpn/$(DEPDIR)/vpn_connman_vpnd-main.Tpo -c -o vpn/vpn_connman_vpnd-main.o `test -f 'vpn/main.c' || echo '$(srcdir)/'`vpn/main.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/$(DEPDIR)/vpn_connman_vpnd-main.Tpo vpn/$(DEPDIR)/vpn_connman_vpnd-main.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/main.c' object='vpn/vpn_connman_vpnd-main.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o vpn/vpn_connman_vpnd-main.o `test -f 'vpn/main.c' || echo '$(srcdir)/'`vpn/main.c - -vpn/vpn_connman_vpnd-main.obj: vpn/main.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT vpn/vpn_connman_vpnd-main.obj -MD -MP -MF vpn/$(DEPDIR)/vpn_connman_vpnd-main.Tpo -c -o vpn/vpn_connman_vpnd-main.obj `if test -f 'vpn/main.c'; then $(CYGPATH_W) 'vpn/main.c'; else $(CYGPATH_W) '$(srcdir)/vpn/main.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/$(DEPDIR)/vpn_connman_vpnd-main.Tpo vpn/$(DEPDIR)/vpn_connman_vpnd-main.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/main.c' object='vpn/vpn_connman_vpnd-main.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o vpn/vpn_connman_vpnd-main.obj `if test -f 'vpn/main.c'; then $(CYGPATH_W) 'vpn/main.c'; else $(CYGPATH_W) '$(srcdir)/vpn/main.c'; fi` - -src/vpn_connman_vpnd-log.o: src/log.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT src/vpn_connman_vpnd-log.o -MD -MP -MF src/$(DEPDIR)/vpn_connman_vpnd-log.Tpo -c -o src/vpn_connman_vpnd-log.o `test -f 'src/log.c' || echo '$(srcdir)/'`src/log.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/vpn_connman_vpnd-log.Tpo src/$(DEPDIR)/vpn_connman_vpnd-log.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/log.c' object='src/vpn_connman_vpnd-log.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o src/vpn_connman_vpnd-log.o `test -f 'src/log.c' || echo '$(srcdir)/'`src/log.c - -src/vpn_connman_vpnd-log.obj: src/log.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT src/vpn_connman_vpnd-log.obj -MD -MP -MF src/$(DEPDIR)/vpn_connman_vpnd-log.Tpo -c -o src/vpn_connman_vpnd-log.obj `if test -f 'src/log.c'; then $(CYGPATH_W) 'src/log.c'; else $(CYGPATH_W) '$(srcdir)/src/log.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/vpn_connman_vpnd-log.Tpo src/$(DEPDIR)/vpn_connman_vpnd-log.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/log.c' object='src/vpn_connman_vpnd-log.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o src/vpn_connman_vpnd-log.obj `if test -f 'src/log.c'; then $(CYGPATH_W) 'src/log.c'; else $(CYGPATH_W) '$(srcdir)/src/log.c'; fi` - -src/vpn_connman_vpnd-error.o: src/error.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT src/vpn_connman_vpnd-error.o -MD -MP -MF src/$(DEPDIR)/vpn_connman_vpnd-error.Tpo -c -o src/vpn_connman_vpnd-error.o `test -f 'src/error.c' || echo '$(srcdir)/'`src/error.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/vpn_connman_vpnd-error.Tpo src/$(DEPDIR)/vpn_connman_vpnd-error.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/error.c' object='src/vpn_connman_vpnd-error.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o src/vpn_connman_vpnd-error.o `test -f 'src/error.c' || echo '$(srcdir)/'`src/error.c - -src/vpn_connman_vpnd-error.obj: src/error.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT src/vpn_connman_vpnd-error.obj -MD -MP -MF src/$(DEPDIR)/vpn_connman_vpnd-error.Tpo -c -o src/vpn_connman_vpnd-error.obj `if test -f 'src/error.c'; then $(CYGPATH_W) 'src/error.c'; else $(CYGPATH_W) '$(srcdir)/src/error.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/vpn_connman_vpnd-error.Tpo src/$(DEPDIR)/vpn_connman_vpnd-error.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/error.c' object='src/vpn_connman_vpnd-error.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o src/vpn_connman_vpnd-error.obj `if test -f 'src/error.c'; then $(CYGPATH_W) 'src/error.c'; else $(CYGPATH_W) '$(srcdir)/src/error.c'; fi` - -src/vpn_connman_vpnd-plugin.o: src/plugin.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT src/vpn_connman_vpnd-plugin.o -MD -MP -MF src/$(DEPDIR)/vpn_connman_vpnd-plugin.Tpo -c -o src/vpn_connman_vpnd-plugin.o `test -f 'src/plugin.c' || echo '$(srcdir)/'`src/plugin.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/vpn_connman_vpnd-plugin.Tpo src/$(DEPDIR)/vpn_connman_vpnd-plugin.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/plugin.c' object='src/vpn_connman_vpnd-plugin.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o src/vpn_connman_vpnd-plugin.o `test -f 'src/plugin.c' || echo '$(srcdir)/'`src/plugin.c - -src/vpn_connman_vpnd-plugin.obj: src/plugin.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT src/vpn_connman_vpnd-plugin.obj -MD -MP -MF src/$(DEPDIR)/vpn_connman_vpnd-plugin.Tpo -c -o src/vpn_connman_vpnd-plugin.obj `if test -f 'src/plugin.c'; then $(CYGPATH_W) 'src/plugin.c'; else $(CYGPATH_W) '$(srcdir)/src/plugin.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/vpn_connman_vpnd-plugin.Tpo src/$(DEPDIR)/vpn_connman_vpnd-plugin.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/plugin.c' object='src/vpn_connman_vpnd-plugin.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o src/vpn_connman_vpnd-plugin.obj `if test -f 'src/plugin.c'; then $(CYGPATH_W) 'src/plugin.c'; else $(CYGPATH_W) '$(srcdir)/src/plugin.c'; fi` - -src/vpn_connman_vpnd-task.o: src/task.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT src/vpn_connman_vpnd-task.o -MD -MP -MF src/$(DEPDIR)/vpn_connman_vpnd-task.Tpo -c -o src/vpn_connman_vpnd-task.o `test -f 'src/task.c' || echo '$(srcdir)/'`src/task.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/vpn_connman_vpnd-task.Tpo src/$(DEPDIR)/vpn_connman_vpnd-task.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/task.c' object='src/vpn_connman_vpnd-task.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o src/vpn_connman_vpnd-task.o `test -f 'src/task.c' || echo '$(srcdir)/'`src/task.c - -src/vpn_connman_vpnd-task.obj: src/task.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT src/vpn_connman_vpnd-task.obj -MD -MP -MF src/$(DEPDIR)/vpn_connman_vpnd-task.Tpo -c -o src/vpn_connman_vpnd-task.obj `if test -f 'src/task.c'; then $(CYGPATH_W) 'src/task.c'; else $(CYGPATH_W) '$(srcdir)/src/task.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/vpn_connman_vpnd-task.Tpo src/$(DEPDIR)/vpn_connman_vpnd-task.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/task.c' object='src/vpn_connman_vpnd-task.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o src/vpn_connman_vpnd-task.obj `if test -f 'src/task.c'; then $(CYGPATH_W) 'src/task.c'; else $(CYGPATH_W) '$(srcdir)/src/task.c'; fi` - -vpn/vpn_connman_vpnd-vpn-manager.o: vpn/vpn-manager.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT vpn/vpn_connman_vpnd-vpn-manager.o -MD -MP -MF vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-manager.Tpo -c -o vpn/vpn_connman_vpnd-vpn-manager.o `test -f 'vpn/vpn-manager.c' || echo '$(srcdir)/'`vpn/vpn-manager.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-manager.Tpo vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-manager.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/vpn-manager.c' object='vpn/vpn_connman_vpnd-vpn-manager.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o vpn/vpn_connman_vpnd-vpn-manager.o `test -f 'vpn/vpn-manager.c' || echo '$(srcdir)/'`vpn/vpn-manager.c - -vpn/vpn_connman_vpnd-vpn-manager.obj: vpn/vpn-manager.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT vpn/vpn_connman_vpnd-vpn-manager.obj -MD -MP -MF vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-manager.Tpo -c -o vpn/vpn_connman_vpnd-vpn-manager.obj `if test -f 'vpn/vpn-manager.c'; then $(CYGPATH_W) 'vpn/vpn-manager.c'; else $(CYGPATH_W) '$(srcdir)/vpn/vpn-manager.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-manager.Tpo vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-manager.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/vpn-manager.c' object='vpn/vpn_connman_vpnd-vpn-manager.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o vpn/vpn_connman_vpnd-vpn-manager.obj `if test -f 'vpn/vpn-manager.c'; then $(CYGPATH_W) 'vpn/vpn-manager.c'; else $(CYGPATH_W) '$(srcdir)/vpn/vpn-manager.c'; fi` - -vpn/vpn_connman_vpnd-vpn-provider.o: vpn/vpn-provider.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT vpn/vpn_connman_vpnd-vpn-provider.o -MD -MP -MF vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-provider.Tpo -c -o vpn/vpn_connman_vpnd-vpn-provider.o `test -f 'vpn/vpn-provider.c' || echo '$(srcdir)/'`vpn/vpn-provider.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-provider.Tpo vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-provider.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/vpn-provider.c' object='vpn/vpn_connman_vpnd-vpn-provider.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o vpn/vpn_connman_vpnd-vpn-provider.o `test -f 'vpn/vpn-provider.c' || echo '$(srcdir)/'`vpn/vpn-provider.c - -vpn/vpn_connman_vpnd-vpn-provider.obj: vpn/vpn-provider.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT vpn/vpn_connman_vpnd-vpn-provider.obj -MD -MP -MF vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-provider.Tpo -c -o vpn/vpn_connman_vpnd-vpn-provider.obj `if test -f 'vpn/vpn-provider.c'; then $(CYGPATH_W) 'vpn/vpn-provider.c'; else $(CYGPATH_W) '$(srcdir)/vpn/vpn-provider.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-provider.Tpo vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-provider.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/vpn-provider.c' object='vpn/vpn_connman_vpnd-vpn-provider.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o vpn/vpn_connman_vpnd-vpn-provider.obj `if test -f 'vpn/vpn-provider.c'; then $(CYGPATH_W) 'vpn/vpn-provider.c'; else $(CYGPATH_W) '$(srcdir)/vpn/vpn-provider.c'; fi` - -vpn/vpn_connman_vpnd-vpn-ipconfig.o: vpn/vpn-ipconfig.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT vpn/vpn_connman_vpnd-vpn-ipconfig.o -MD -MP -MF vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-ipconfig.Tpo -c -o vpn/vpn_connman_vpnd-vpn-ipconfig.o `test -f 'vpn/vpn-ipconfig.c' || echo '$(srcdir)/'`vpn/vpn-ipconfig.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-ipconfig.Tpo vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-ipconfig.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/vpn-ipconfig.c' object='vpn/vpn_connman_vpnd-vpn-ipconfig.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o vpn/vpn_connman_vpnd-vpn-ipconfig.o `test -f 'vpn/vpn-ipconfig.c' || echo '$(srcdir)/'`vpn/vpn-ipconfig.c - -vpn/vpn_connman_vpnd-vpn-ipconfig.obj: vpn/vpn-ipconfig.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT vpn/vpn_connman_vpnd-vpn-ipconfig.obj -MD -MP -MF vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-ipconfig.Tpo -c -o vpn/vpn_connman_vpnd-vpn-ipconfig.obj `if test -f 'vpn/vpn-ipconfig.c'; then $(CYGPATH_W) 'vpn/vpn-ipconfig.c'; else $(CYGPATH_W) '$(srcdir)/vpn/vpn-ipconfig.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-ipconfig.Tpo vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-ipconfig.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/vpn-ipconfig.c' object='vpn/vpn_connman_vpnd-vpn-ipconfig.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o vpn/vpn_connman_vpnd-vpn-ipconfig.obj `if test -f 'vpn/vpn-ipconfig.c'; then $(CYGPATH_W) 'vpn/vpn-ipconfig.c'; else $(CYGPATH_W) '$(srcdir)/vpn/vpn-ipconfig.c'; fi` - -src/vpn_connman_vpnd-inet.o: src/inet.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT src/vpn_connman_vpnd-inet.o -MD -MP -MF src/$(DEPDIR)/vpn_connman_vpnd-inet.Tpo -c -o src/vpn_connman_vpnd-inet.o `test -f 'src/inet.c' || echo '$(srcdir)/'`src/inet.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/vpn_connman_vpnd-inet.Tpo src/$(DEPDIR)/vpn_connman_vpnd-inet.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/inet.c' object='src/vpn_connman_vpnd-inet.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o src/vpn_connman_vpnd-inet.o `test -f 'src/inet.c' || echo '$(srcdir)/'`src/inet.c - -src/vpn_connman_vpnd-inet.obj: src/inet.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT src/vpn_connman_vpnd-inet.obj -MD -MP -MF src/$(DEPDIR)/vpn_connman_vpnd-inet.Tpo -c -o src/vpn_connman_vpnd-inet.obj `if test -f 'src/inet.c'; then $(CYGPATH_W) 'src/inet.c'; else $(CYGPATH_W) '$(srcdir)/src/inet.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/vpn_connman_vpnd-inet.Tpo src/$(DEPDIR)/vpn_connman_vpnd-inet.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/inet.c' object='src/vpn_connman_vpnd-inet.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o src/vpn_connman_vpnd-inet.obj `if test -f 'src/inet.c'; then $(CYGPATH_W) 'src/inet.c'; else $(CYGPATH_W) '$(srcdir)/src/inet.c'; fi` - -vpn/vpn_connman_vpnd-vpn-rtnl.o: vpn/vpn-rtnl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT vpn/vpn_connman_vpnd-vpn-rtnl.o -MD -MP -MF vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-rtnl.Tpo -c -o vpn/vpn_connman_vpnd-vpn-rtnl.o `test -f 'vpn/vpn-rtnl.c' || echo '$(srcdir)/'`vpn/vpn-rtnl.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-rtnl.Tpo vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-rtnl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/vpn-rtnl.c' object='vpn/vpn_connman_vpnd-vpn-rtnl.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o vpn/vpn_connman_vpnd-vpn-rtnl.o `test -f 'vpn/vpn-rtnl.c' || echo '$(srcdir)/'`vpn/vpn-rtnl.c - -vpn/vpn_connman_vpnd-vpn-rtnl.obj: vpn/vpn-rtnl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT vpn/vpn_connman_vpnd-vpn-rtnl.obj -MD -MP -MF vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-rtnl.Tpo -c -o vpn/vpn_connman_vpnd-vpn-rtnl.obj `if test -f 'vpn/vpn-rtnl.c'; then $(CYGPATH_W) 'vpn/vpn-rtnl.c'; else $(CYGPATH_W) '$(srcdir)/vpn/vpn-rtnl.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-rtnl.Tpo vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-rtnl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/vpn-rtnl.c' object='vpn/vpn_connman_vpnd-vpn-rtnl.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o vpn/vpn_connman_vpnd-vpn-rtnl.obj `if test -f 'vpn/vpn-rtnl.c'; then $(CYGPATH_W) 'vpn/vpn-rtnl.c'; else $(CYGPATH_W) '$(srcdir)/vpn/vpn-rtnl.c'; fi` - -src/vpn_connman_vpnd-dbus.o: src/dbus.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT src/vpn_connman_vpnd-dbus.o -MD -MP -MF src/$(DEPDIR)/vpn_connman_vpnd-dbus.Tpo -c -o src/vpn_connman_vpnd-dbus.o `test -f 'src/dbus.c' || echo '$(srcdir)/'`src/dbus.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/vpn_connman_vpnd-dbus.Tpo src/$(DEPDIR)/vpn_connman_vpnd-dbus.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/dbus.c' object='src/vpn_connman_vpnd-dbus.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o src/vpn_connman_vpnd-dbus.o `test -f 'src/dbus.c' || echo '$(srcdir)/'`src/dbus.c - -src/vpn_connman_vpnd-dbus.obj: src/dbus.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT src/vpn_connman_vpnd-dbus.obj -MD -MP -MF src/$(DEPDIR)/vpn_connman_vpnd-dbus.Tpo -c -o src/vpn_connman_vpnd-dbus.obj `if test -f 'src/dbus.c'; then $(CYGPATH_W) 'src/dbus.c'; else $(CYGPATH_W) '$(srcdir)/src/dbus.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/vpn_connman_vpnd-dbus.Tpo src/$(DEPDIR)/vpn_connman_vpnd-dbus.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/dbus.c' object='src/vpn_connman_vpnd-dbus.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o src/vpn_connman_vpnd-dbus.obj `if test -f 'src/dbus.c'; then $(CYGPATH_W) 'src/dbus.c'; else $(CYGPATH_W) '$(srcdir)/src/dbus.c'; fi` - -src/vpn_connman_vpnd-storage.o: src/storage.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT src/vpn_connman_vpnd-storage.o -MD -MP -MF src/$(DEPDIR)/vpn_connman_vpnd-storage.Tpo -c -o src/vpn_connman_vpnd-storage.o `test -f 'src/storage.c' || echo '$(srcdir)/'`src/storage.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/vpn_connman_vpnd-storage.Tpo src/$(DEPDIR)/vpn_connman_vpnd-storage.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/storage.c' object='src/vpn_connman_vpnd-storage.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o src/vpn_connman_vpnd-storage.o `test -f 'src/storage.c' || echo '$(srcdir)/'`src/storage.c - -src/vpn_connman_vpnd-storage.obj: src/storage.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT src/vpn_connman_vpnd-storage.obj -MD -MP -MF src/$(DEPDIR)/vpn_connman_vpnd-storage.Tpo -c -o src/vpn_connman_vpnd-storage.obj `if test -f 'src/storage.c'; then $(CYGPATH_W) 'src/storage.c'; else $(CYGPATH_W) '$(srcdir)/src/storage.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/vpn_connman_vpnd-storage.Tpo src/$(DEPDIR)/vpn_connman_vpnd-storage.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/storage.c' object='src/vpn_connman_vpnd-storage.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o src/vpn_connman_vpnd-storage.obj `if test -f 'src/storage.c'; then $(CYGPATH_W) 'src/storage.c'; else $(CYGPATH_W) '$(srcdir)/src/storage.c'; fi` - -src/vpn_connman_vpnd-ipaddress.o: src/ipaddress.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT src/vpn_connman_vpnd-ipaddress.o -MD -MP -MF src/$(DEPDIR)/vpn_connman_vpnd-ipaddress.Tpo -c -o src/vpn_connman_vpnd-ipaddress.o `test -f 'src/ipaddress.c' || echo '$(srcdir)/'`src/ipaddress.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/vpn_connman_vpnd-ipaddress.Tpo src/$(DEPDIR)/vpn_connman_vpnd-ipaddress.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/ipaddress.c' object='src/vpn_connman_vpnd-ipaddress.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o src/vpn_connman_vpnd-ipaddress.o `test -f 'src/ipaddress.c' || echo '$(srcdir)/'`src/ipaddress.c - -src/vpn_connman_vpnd-ipaddress.obj: src/ipaddress.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT src/vpn_connman_vpnd-ipaddress.obj -MD -MP -MF src/$(DEPDIR)/vpn_connman_vpnd-ipaddress.Tpo -c -o src/vpn_connman_vpnd-ipaddress.obj `if test -f 'src/ipaddress.c'; then $(CYGPATH_W) 'src/ipaddress.c'; else $(CYGPATH_W) '$(srcdir)/src/ipaddress.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/vpn_connman_vpnd-ipaddress.Tpo src/$(DEPDIR)/vpn_connman_vpnd-ipaddress.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/ipaddress.c' object='src/vpn_connman_vpnd-ipaddress.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o src/vpn_connman_vpnd-ipaddress.obj `if test -f 'src/ipaddress.c'; then $(CYGPATH_W) 'src/ipaddress.c'; else $(CYGPATH_W) '$(srcdir)/src/ipaddress.c'; fi` - -src/vpn_connman_vpnd-agent.o: src/agent.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT src/vpn_connman_vpnd-agent.o -MD -MP -MF src/$(DEPDIR)/vpn_connman_vpnd-agent.Tpo -c -o src/vpn_connman_vpnd-agent.o `test -f 'src/agent.c' || echo '$(srcdir)/'`src/agent.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/vpn_connman_vpnd-agent.Tpo src/$(DEPDIR)/vpn_connman_vpnd-agent.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/agent.c' object='src/vpn_connman_vpnd-agent.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o src/vpn_connman_vpnd-agent.o `test -f 'src/agent.c' || echo '$(srcdir)/'`src/agent.c - -src/vpn_connman_vpnd-agent.obj: src/agent.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT src/vpn_connman_vpnd-agent.obj -MD -MP -MF src/$(DEPDIR)/vpn_connman_vpnd-agent.Tpo -c -o src/vpn_connman_vpnd-agent.obj `if test -f 'src/agent.c'; then $(CYGPATH_W) 'src/agent.c'; else $(CYGPATH_W) '$(srcdir)/src/agent.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/vpn_connman_vpnd-agent.Tpo src/$(DEPDIR)/vpn_connman_vpnd-agent.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/agent.c' object='src/vpn_connman_vpnd-agent.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o src/vpn_connman_vpnd-agent.obj `if test -f 'src/agent.c'; then $(CYGPATH_W) 'src/agent.c'; else $(CYGPATH_W) '$(srcdir)/src/agent.c'; fi` - -vpn/vpn_connman_vpnd-vpn-agent.o: vpn/vpn-agent.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT vpn/vpn_connman_vpnd-vpn-agent.o -MD -MP -MF vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-agent.Tpo -c -o vpn/vpn_connman_vpnd-vpn-agent.o `test -f 'vpn/vpn-agent.c' || echo '$(srcdir)/'`vpn/vpn-agent.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-agent.Tpo vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-agent.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/vpn-agent.c' object='vpn/vpn_connman_vpnd-vpn-agent.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o vpn/vpn_connman_vpnd-vpn-agent.o `test -f 'vpn/vpn-agent.c' || echo '$(srcdir)/'`vpn/vpn-agent.c - -vpn/vpn_connman_vpnd-vpn-agent.obj: vpn/vpn-agent.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT vpn/vpn_connman_vpnd-vpn-agent.obj -MD -MP -MF vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-agent.Tpo -c -o vpn/vpn_connman_vpnd-vpn-agent.obj `if test -f 'vpn/vpn-agent.c'; then $(CYGPATH_W) 'vpn/vpn-agent.c'; else $(CYGPATH_W) '$(srcdir)/vpn/vpn-agent.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-agent.Tpo vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-agent.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/vpn-agent.c' object='vpn/vpn_connman_vpnd-vpn-agent.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o vpn/vpn_connman_vpnd-vpn-agent.obj `if test -f 'vpn/vpn-agent.c'; then $(CYGPATH_W) 'vpn/vpn-agent.c'; else $(CYGPATH_W) '$(srcdir)/vpn/vpn-agent.c'; fi` - -src/vpn_connman_vpnd-inotify.o: src/inotify.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT src/vpn_connman_vpnd-inotify.o -MD -MP -MF src/$(DEPDIR)/vpn_connman_vpnd-inotify.Tpo -c -o src/vpn_connman_vpnd-inotify.o `test -f 'src/inotify.c' || echo '$(srcdir)/'`src/inotify.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/vpn_connman_vpnd-inotify.Tpo src/$(DEPDIR)/vpn_connman_vpnd-inotify.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/inotify.c' object='src/vpn_connman_vpnd-inotify.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o src/vpn_connman_vpnd-inotify.o `test -f 'src/inotify.c' || echo '$(srcdir)/'`src/inotify.c - -src/vpn_connman_vpnd-inotify.obj: src/inotify.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT src/vpn_connman_vpnd-inotify.obj -MD -MP -MF src/$(DEPDIR)/vpn_connman_vpnd-inotify.Tpo -c -o src/vpn_connman_vpnd-inotify.obj `if test -f 'src/inotify.c'; then $(CYGPATH_W) 'src/inotify.c'; else $(CYGPATH_W) '$(srcdir)/src/inotify.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/vpn_connman_vpnd-inotify.Tpo src/$(DEPDIR)/vpn_connman_vpnd-inotify.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/inotify.c' object='src/vpn_connman_vpnd-inotify.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o src/vpn_connman_vpnd-inotify.obj `if test -f 'src/inotify.c'; then $(CYGPATH_W) 'src/inotify.c'; else $(CYGPATH_W) '$(srcdir)/src/inotify.c'; fi` - -vpn/vpn_connman_vpnd-vpn-config.o: vpn/vpn-config.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT vpn/vpn_connman_vpnd-vpn-config.o -MD -MP -MF vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-config.Tpo -c -o vpn/vpn_connman_vpnd-vpn-config.o `test -f 'vpn/vpn-config.c' || echo '$(srcdir)/'`vpn/vpn-config.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-config.Tpo vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-config.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/vpn-config.c' object='vpn/vpn_connman_vpnd-vpn-config.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o vpn/vpn_connman_vpnd-vpn-config.o `test -f 'vpn/vpn-config.c' || echo '$(srcdir)/'`vpn/vpn-config.c - -vpn/vpn_connman_vpnd-vpn-config.obj: vpn/vpn-config.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -MT vpn/vpn_connman_vpnd-vpn-config.obj -MD -MP -MF vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-config.Tpo -c -o vpn/vpn_connman_vpnd-vpn-config.obj `if test -f 'vpn/vpn-config.c'; then $(CYGPATH_W) 'vpn/vpn-config.c'; else $(CYGPATH_W) '$(srcdir)/vpn/vpn-config.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-config.Tpo vpn/$(DEPDIR)/vpn_connman_vpnd-vpn-config.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vpn/vpn-config.c' object='vpn/vpn_connman_vpnd-vpn-config.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vpn_connman_vpnd_CFLAGS) $(CFLAGS) -c -o vpn/vpn_connman_vpnd-vpn-config.obj `if test -f 'vpn/vpn-config.c'; then $(CYGPATH_W) 'vpn/vpn-config.c'; else $(CYGPATH_W) '$(srcdir)/vpn/vpn-config.c'; fi` - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -rm -rf client/.libs client/_libs - -rm -rf gdbus/.libs gdbus/_libs - -rm -rf plugins/.libs plugins/_libs - -rm -rf scripts/.libs scripts/_libs - -rm -rf src/.libs src/_libs - -rm -rf tools/.libs tools/_libs - -rm -rf unit/.libs unit/_libs - -rm -rf vpn/.libs vpn/_libs - -rm -rf vpn/plugins/.libs vpn/plugins/_libs - -distclean-libtool: - -rm -f libtool config.lt -install-man1: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man1dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man1dir)" || 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 '/\.1[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ - done; } - -uninstall-man1: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man1dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.1[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) -install-man5: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man5dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man5dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man5dir)" || 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 '/\.5[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man5dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man5dir)" || exit $$?; }; \ - done; } - -uninstall-man5: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man5dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.5[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man5dir)'; $(am__uninstall_files_from_dir) -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; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ 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'; \ - } | 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) -install-dbusconfDATA: $(dbusconf_DATA) - @$(NORMAL_INSTALL) - @list='$(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"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dbusconfdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(dbusconfdir)" || exit $$?; \ - done - -uninstall-dbusconfDATA: - @$(NORMAL_UNINSTALL) - @list='$(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) -install-dbusserviceDATA: $(dbusservice_DATA) - @$(NORMAL_INSTALL) - @list='$(dbusservice_DATA)'; test -n "$(dbusservicedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(dbusservicedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(dbusservicedir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dbusservicedir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(dbusservicedir)" || exit $$?; \ - done - -uninstall-dbusserviceDATA: - @$(NORMAL_UNINSTALL) - @list='$(dbusservice_DATA)'; test -n "$(dbusservicedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(dbusservicedir)'; $(am__uninstall_files_from_dir) -install-pkgconfigDATA: $(pkgconfig_DATA) - @$(NORMAL_INSTALL) - @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"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ - done - -uninstall-pkgconfigDATA: - @$(NORMAL_UNINSTALL) - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) -install-policyDATA: $(policy_DATA) - @$(NORMAL_INSTALL) - @list='$(policy_DATA)'; test -n "$(policydir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(policydir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(policydir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(policydir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(policydir)" || exit $$?; \ - done - -uninstall-policyDATA: - @$(NORMAL_UNINSTALL) - @list='$(policy_DATA)'; test -n "$(policydir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(policydir)'; $(am__uninstall_files_from_dir) -install-scriptDATA: $(script_DATA) - @$(NORMAL_INSTALL) - @list='$(script_DATA)'; test -n "$(scriptdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(scriptdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(scriptdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(scriptdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(scriptdir)" || exit $$?; \ - done - -uninstall-scriptDATA: - @$(NORMAL_UNINSTALL) - @list='$(script_DATA)'; test -n "$(scriptdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(scriptdir)'; $(am__uninstall_files_from_dir) -install-systemdunitDATA: $(systemdunit_DATA) - @$(NORMAL_INSTALL) - @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"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(systemdunitdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(systemdunitdir)" || exit $$?; \ - done - -uninstall-systemdunitDATA: - @$(NORMAL_UNINSTALL) - @list='$(systemdunit_DATA)'; test -n "$(systemdunitdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(systemdunitdir)'; $(am__uninstall_files_from_dir) -install-includeHEADERS: $(include_HEADERS) - @$(NORMAL_INSTALL) - @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ - done - -uninstall-includeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) -install-nodist_includeHEADERS: $(nodist_include_HEADERS) - @$(NORMAL_INSTALL) - @list='$(nodist_include_HEADERS)'; test -n "$(includedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ - done - -uninstall-nodist_includeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(nodist_include_HEADERS)'; test -n "$(includedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -check-TESTS: $(TESTS) - @failed=0; all=0; xfail=0; xpass=0; skip=0; \ - srcdir=$(srcdir); export srcdir; \ - list=' $(TESTS) '; \ - $(am__tty_colors); \ - if test -n "$$list"; then \ - for tst in $$list; do \ - if test -f ./$$tst; then dir=./; \ - elif test -f $$tst; then dir=; \ - else dir="$(srcdir)/"; fi; \ - if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ - col=$$red; res=XPASS; \ - ;; \ - *) \ - col=$$grn; res=PASS; \ - ;; \ - esac; \ - elif test $$? -ne 77; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xfail=`expr $$xfail + 1`; \ - col=$$lgn; res=XFAIL; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ - col=$$red; res=FAIL; \ - ;; \ - esac; \ - else \ - skip=`expr $$skip + 1`; \ - col=$$blu; res=SKIP; \ - fi; \ - echo "$${col}$$res$${std}: $$tst"; \ - done; \ - if test "$$all" -eq 1; then \ - tests="test"; \ - All=""; \ - else \ - tests="tests"; \ - All="All "; \ - fi; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ - banner="$$All$$all $$tests passed"; \ - else \ - if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ - banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ - fi; \ - else \ - if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all $$tests failed"; \ - else \ - if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ - banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ - fi; \ - fi; \ - dashes="$$banner"; \ - skipped=""; \ - if test "$$skip" -ne 0; then \ - if test "$$skip" -eq 1; then \ - skipped="($$skip test was not run)"; \ - else \ - skipped="($$skip tests were not run)"; \ - fi; \ - test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$skipped"; \ - fi; \ - report=""; \ - if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ - report="Please report to $(PACKAGE_BUGREPORT)"; \ - test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$report"; \ - fi; \ - dashes=`echo "$$dashes" | sed s/./=/g`; \ - if test "$$failed" -eq 0; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - 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}"; \ - test "$$failed" -eq 0; \ - else :; fi - -distdir: $(DISTFILES) - @list='$(MANS)'; if test -n "$$list"; then \ - list=`for p in $$list; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ - if test -n "$$list" && \ - grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ - echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ - grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ - echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ - echo " typically \`make maintainer-clean' will remove them" >&2; \ - exit 1; \ - else :; fi; \ - else :; fi - $(am__remove_distdir) - test -d "$(distdir)" || mkdir "$(distdir)" - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - -test -n "$(am__skip_mode_fix)" \ - || find "$(distdir)" -type d ! -perm -755 \ - -exec chmod u+rwx,go+rx {} \; -o \ - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r "$(distdir)" -dist-gzip: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(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 - $(am__remove_distdir) - -dist-lzma: distdir - tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma - $(am__remove_distdir) - -dist-xz: distdir - tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz - $(am__remove_distdir) - -dist-tarZ: distdir - tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__remove_distdir) - -dist-shar: distdir - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - $(am__remove_distdir) - -dist-zip: distdir - -rm -f $(distdir).zip - zip -rq $(distdir).zip $(distdir) - $(am__remove_distdir) - -dist dist-all: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) - -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - case '$(DIST_ARCHIVES)' in \ - *.tar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ - *.tar.bz2*) \ - 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*) \ - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ - *.shar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ - *.zip*) \ - unzip $(distdir).zip ;;\ - esac - chmod -R a-w $(distdir); chmod u+w $(distdir) - mkdir $(distdir)/_build - mkdir $(distdir)/_inst - chmod a-w $(distdir) - test -d $(distdir)/_build || exit 0; \ - dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ - && 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 \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ - distuninstallcheck \ - && chmod -R a-w "$$dc_install_base" \ - && ({ \ - (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ - distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ - } || { rm -rf "$$dc_destdir"; exit 1; }) \ - && rm -rf "$$dc_destdir" \ - && $(MAKE) $(AM_MAKEFLAGS) dist \ - && rm -rf $(DIST_ARCHIVES) \ - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ - && cd "$$am__cwd" \ - || exit 1 - $(am__remove_distdir) - @(echo "$(distdir) archives ready for distribution: "; \ - 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 \ - || { echo "ERROR: files left after uninstall:" ; \ - if test -n "$(DESTDIR)"; then \ - echo " (check DESTDIR support)"; \ - fi ; \ - $(distuninstallcheck_listfiles) ; \ - exit 1; } >&2 -distcleancheck: distclean - @if test '$(srcdir)' = . ; then \ - echo "ERROR: distcleancheck can only run from a VPATH build" ; \ - exit 1 ; \ - fi - @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left in build directory after distclean:" ; \ - $(distcleancheck_listfiles) ; \ - exit 1; } >&2 -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) check-am -all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) $(MANS) $(DATA) \ - $(HEADERS) config.h -installdirs: - for dir in "$(DESTDIR)$(plugindir)" "$(DESTDIR)$(scriptdir)" "$(DESTDIR)$(vpn_plugindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(scriptdir)" "$(DESTDIR)$(testdir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(dbusconfdir)" "$(DESTDIR)$(dbusservicedir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(policydir)" "$(DESTDIR)$(scriptdir)" "$(DESTDIR)$(systemdunitdir)" "$(DESTDIR)$(includedir)" "$(DESTDIR)$(includedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - 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 -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -rm -f client/$(DEPDIR)/$(am__dirstamp) - -rm -f client/$(am__dirstamp) - -rm -f gdbus/$(DEPDIR)/$(am__dirstamp) - -rm -f gdbus/$(am__dirstamp) - -rm -f gdhcp/$(DEPDIR)/$(am__dirstamp) - -rm -f gdhcp/$(am__dirstamp) - -rm -f gsupplicant/$(DEPDIR)/$(am__dirstamp) - -rm -f gsupplicant/$(am__dirstamp) - -rm -f gweb/$(DEPDIR)/$(am__dirstamp) - -rm -f gweb/$(am__dirstamp) - -rm -f plugins/$(DEPDIR)/$(am__dirstamp) - -rm -f plugins/$(am__dirstamp) - -rm -f scripts/$(DEPDIR)/$(am__dirstamp) - -rm -f scripts/$(am__dirstamp) - -rm -f src/$(DEPDIR)/$(am__dirstamp) - -rm -f src/$(am__dirstamp) - -rm -f src/shared/$(DEPDIR)/$(am__dirstamp) - -rm -f src/shared/$(am__dirstamp) - -rm -f tools/$(DEPDIR)/$(am__dirstamp) - -rm -f tools/$(am__dirstamp) - -rm -f unit/$(DEPDIR)/$(am__dirstamp) - -rm -f unit/$(am__dirstamp) - -rm -f vpn/$(DEPDIR)/$(am__dirstamp) - -rm -f vpn/$(am__dirstamp) - -rm -f vpn/plugins/$(DEPDIR)/$(am__dirstamp) - -rm -f vpn/plugins/$(am__dirstamp) - -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-binPROGRAMS clean-generic clean-libtool clean-local \ - clean-noinstLTLIBRARIES clean-noinstPROGRAMS \ - clean-pluginLTLIBRARIES clean-sbinPROGRAMS \ - clean-scriptLTLIBRARIES clean-scriptPROGRAMS \ - clean-vpn_pluginLTLIBRARIES mostlyclean-am - -distclean: distclean-am - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf client/$(DEPDIR) gdbus/$(DEPDIR) gdhcp/$(DEPDIR) gsupplicant/$(DEPDIR) gweb/$(DEPDIR) plugins/$(DEPDIR) scripts/$(DEPDIR) src/$(DEPDIR) src/shared/$(DEPDIR) tools/$(DEPDIR) unit/$(DEPDIR) vpn/$(DEPDIR) vpn/plugins/$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-hdr distclean-libtool distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-dbusconfDATA install-dbusserviceDATA \ - install-includeHEADERS install-man \ - install-nodist_includeHEADERS install-pkgconfigDATA \ - install-pluginLTLIBRARIES install-policyDATA \ - install-scriptDATA install-scriptLTLIBRARIES \ - install-scriptPROGRAMS install-systemdunitDATA \ - install-testSCRIPTS install-vpn_pluginLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: install-binPROGRAMS install-sbinPROGRAMS - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man1 install-man5 install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf $(top_srcdir)/autom4te.cache - -rm -rf client/$(DEPDIR) gdbus/$(DEPDIR) gdhcp/$(DEPDIR) gsupplicant/$(DEPDIR) gweb/$(DEPDIR) plugins/$(DEPDIR) scripts/$(DEPDIR) src/$(DEPDIR) src/shared/$(DEPDIR) tools/$(DEPDIR) unit/$(DEPDIR) vpn/$(DEPDIR) vpn/plugins/$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-binPROGRAMS uninstall-dbusconfDATA \ - uninstall-dbusserviceDATA uninstall-includeHEADERS \ - uninstall-man uninstall-nodist_includeHEADERS \ - uninstall-pkgconfigDATA uninstall-pluginLTLIBRARIES \ - uninstall-policyDATA uninstall-sbinPROGRAMS \ - uninstall-scriptDATA uninstall-scriptLTLIBRARIES \ - uninstall-scriptPROGRAMS uninstall-systemdunitDATA \ - uninstall-testSCRIPTS uninstall-vpn_pluginLTLIBRARIES - -uninstall-man: uninstall-man1 uninstall-man5 uninstall-man8 - -.MAKE: all check check-am install install-am install-strip - -.PHONY: CTAGS GTAGS all all-am am--refresh check check-TESTS check-am \ - clean clean-binPROGRAMS clean-generic clean-libtool \ - clean-local clean-noinstLTLIBRARIES clean-noinstPROGRAMS \ - clean-pluginLTLIBRARIES clean-sbinPROGRAMS \ - clean-scriptLTLIBRARIES clean-scriptPROGRAMS \ - clean-vpn_pluginLTLIBRARIES ctags dist dist-all dist-bzip2 \ - dist-gzip dist-lzip 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 \ - install-binPROGRAMS install-data install-data-am \ - install-dbusconfDATA install-dbusserviceDATA install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-includeHEADERS install-info \ - install-info-am install-man install-man1 install-man5 \ - install-man8 install-nodist_includeHEADERS install-pdf \ - install-pdf-am install-pkgconfigDATA install-pluginLTLIBRARIES \ - install-policyDATA install-ps install-ps-am \ - install-sbinPROGRAMS install-scriptDATA \ - install-scriptLTLIBRARIES install-scriptPROGRAMS install-strip \ - install-systemdunitDATA install-testSCRIPTS \ - install-vpn_pluginLTLIBRARIES installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ - uninstall-am uninstall-binPROGRAMS uninstall-dbusconfDATA \ - uninstall-dbusserviceDATA uninstall-includeHEADERS \ - uninstall-man uninstall-man1 uninstall-man5 uninstall-man8 \ - uninstall-nodist_includeHEADERS uninstall-pkgconfigDATA \ - uninstall-pluginLTLIBRARIES uninstall-policyDATA \ - uninstall-sbinPROGRAMS uninstall-scriptDATA \ - uninstall-scriptLTLIBRARIES uninstall-scriptPROGRAMS \ - uninstall-systemdunitDATA uninstall-testSCRIPTS \ - uninstall-vpn_pluginLTLIBRARIES - - -plugins/net.connman.policy: plugins/polkit.policy -@POLKIT_TRUE@ $(AM_V_GEN)cp $< $@ - -@VPN_TRUE@vpn/net.connman.vpn.policy: vpn/vpn-polkit.policy -@POLKIT_TRUE@@VPN_TRUE@ $(AM_V_GEN)cp $< $@ - -src/builtin.h: src/genbuiltin $(builtin_sources) - $(AM_V_GEN)$(srcdir)/src/genbuiltin $(builtin_modules) > $@ - -vpn/builtin.h: src/genbuiltin $(builtin_vpn_sources) - $(AM_V_GEN)$(srcdir)/src/genbuiltin $(builtin_vpn_modules) > $@ - -src/connman.conf: src/connman-dbus.conf src/connman-polkit.conf -@POLKIT_TRUE@ $(AM_V_GEN)cp $(srcdir)/src/connman-polkit.conf $@ -@POLKIT_FALSE@ $(AM_V_GEN)cp $(srcdir)/src/connman-dbus.conf $@ - -@VPN_TRUE@vpn/connman-vpn-dbus.conf: vpn/vpn-dbus.conf vpn/vpn-polkit.conf -@POLKIT_TRUE@@VPN_TRUE@ $(AM_V_GEN)cp $(srcdir)/vpn/vpn-polkit.conf $@ -@POLKIT_FALSE@@VPN_TRUE@ $(AM_V_GEN)cp $(srcdir)/vpn/vpn-dbus.conf $@ - -@SELINUX_TRUE@connman-task.pp: vpn/connman-task.te -@SELINUX_TRUE@ make -f /usr/share/selinux/devel/Makefile - -%.service: %.service.in Makefile - $(do_subst) < $< > $@ - -scripts/connman: scripts/connman.in Makefile - $(do_subst) < $< > $@ - -include/connman/version.h: include/version.h - $(AM_V_at)$(MKDIR_P) include/connman - $(AM_V_GEN)$(LN_S) $(abs_top_builddir)/$< $@ - -include/connman/%.h: $(abs_top_srcdir)/include/%.h - $(AM_V_at)$(MKDIR_P) include/connman - $(AM_V_GEN)$(LN_S) $< $@ - -clean-local: - @$(RM) -rf include/connman - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/Makefile.plugins b/Makefile.plugins index cc732d9f..1eb0c3f2 100755 --- a/Makefile.plugins +++ b/Makefile.plugins @@ -26,9 +26,12 @@ builtin_modules += wifi builtin_sources += plugins/wifi.c $(gsupplicant_sources) endif +if IWD +builtin_modules += iwd +builtin_sources += plugins/iwd.c +endif + if BLUETOOTH -builtin_modules += bluetooth_legacy -builtin_sources += plugins/bluetooth_legacy.c builtin_modules += bluetooth builtin_sources += plugins/bluetooth.c endif @@ -131,6 +131,15 @@ For a working system, certain configuration options need to be enabled: detected and only a runtime dependency. It is not needed to build ConnMan. + --enable-iwd + + Enable support for Wireless daemon for Linux + + The IWD project does not have initial release so far, + therefore by default IWD support is not enabled. + + It is safe to enable this option along WiFi support. + --disable-pacrunner Disable support for PACrunner proxy handling @@ -346,6 +355,22 @@ network. While the same setup works well for a WiFi or ethernet uplink. +GnuTLS +====== + +When using GnuTLS be aware that depending on the configuration of +GnuTLS does either an lazy or eager initialization of an internal +entropy pool using /dev/urandom. On eager initialization the loading +of ConnMan will be delayed by the link loader until the entropy pool +is filled. On smaller system this can easily delay the startup of +ConnMan by several seconds (we had reports of 25 seconds and more +delay). + +GnuTLS allows to switch back to lazy evaluation when the environment +variable GNUTLS_NO_EXPLICIT_INIT. For more details please read +the man page to gnutls_global_init(3). + + Online check ============ @@ -360,11 +385,17 @@ from ipv4.connman.net (for IPv4 connectivity) and ipv6.connman.net (for IPv6 connectivity). The used URL looks like this http://ipv{4|6}.connman.net/online/status.html +See connman.conf(5) for the EnableOnlineCheck option, if you need to +disable the feature. + During the online check procedure, ConnMan will temporarily install a host route to both the ipv4.connman.net and ipv6.connman.net so that the online check query can be directed via the correct network interface which the connected service is using. This host route is -automatically removed when the online check is done. +automatically removed when the online check is done. Note that the server +expressly does not log any connection information, including IPv4/6 +addresses of connecting clients. The server runtime logs cycle in RAM +memory depending on amount of connections processed. ConnMan sends this very minimal information in http header when doing the online check request (example): @@ -85,17 +85,6 @@ Core utilize the information already provided by netlink in src/device.c. -- Simplify gateway selection code - - Priority: Low - Complexity: C4 - - The service list is always sorted according to preference with the - first service always owning the default route. See if update_order and - find_default_gateway in src/connection.c can be modified to use the - sorted service list instead of walking through the gateway_hash. - - - Support D-Bus ObjectManager Priority: Medium @@ -110,6 +99,20 @@ Core ObjectManager common to Linux desktops can be implemented. +Tethering +========= + +- Verify if bridge has been correctly created and configured + + Priority: Low + Complexity: C1 + + When enabling tethering check if there was any error while creating and + configuring the bridge before continue. It has been done only for WiFi + technology, for other tethering technologies it should be evaluated + and implemented in case it is advantageous. + + WiFi ==== @@ -152,16 +155,10 @@ WiFi wifi's technology set_regdom implementation. Removing autoscan fallback. (Note: should be done around the end 2012) + Bluetooth ========= -- Remove Bluez 4.x support - - Priority: Low - Complexity: C1 - - Remove plugins/bluetooth-legacy.c support in about 6 month (July 2013) or - when Bluez 4.x usage becomes minimal. Cellular ======== @@ -200,23 +197,9 @@ VPN Tools ===== -- Add Clock API and MoveBefore/MoveAfter support to connmanctl +- Add Clock API support to connmanctl Priority: Low Complexity: C2 - The connmanctl command line tool should support Clock API and Service API - MoveBefore/MoveAfter. - - -User Interface -============== - -- GNOME3 UI - - Priority: Low - Complexity: C4 - - A GNOME3 shell user interface would make it easier for mainstream distros - users to use ConnMan. Continue/restart the work at - https://github.com/connectivity/gnome-extension-connman + The connmanctl command line tool should support Clock API. diff --git a/client/commands.c b/client/commands.c index 3f7e0010..746e1589 100755 --- a/client/commands.c +++ b/client/commands.c @@ -46,6 +46,7 @@ static DBusConnection *connection; static GHashTable *service_hash; +static GHashTable *vpnconnection_hash; static GHashTable *peer_hash; static GHashTable *technology_hash; static char *session_notify_path; @@ -265,6 +266,33 @@ static int cmd_state(char *args[], int num, struct connman_option *options) state_print, NULL, NULL, NULL); } +static int clock_print(DBusMessageIter *iter, const char *error, + void *user_data) +{ + DBusMessageIter entry; + + if (error) { + fprintf(stderr, "Error: %s", error); + return 0; + } + + dbus_message_iter_recurse(iter, &entry); + __connmanctl_dbus_print(&entry, " ", " = ", "\n"); + fprintf(stdout, "\n"); + + return 0; +} + +static int cmd_clock(char *args[], int num, struct connman_option *options) +{ + if (num > 1) + return -E2BIG; + + return __connmanctl_dbus_method_call(connection, CONNMAN_SERVICE, + CONNMAN_PATH, "net.connman.Clock", "GetProperties", + clock_print, NULL, NULL, NULL); +} + static int services_list(DBusMessageIter *iter, const char *error, void *user_data) { @@ -495,8 +523,13 @@ struct tether_properties { static int tether_update(struct tether_properties *tether) { - if (tether->ssid_result == 0 && tether->passphrase_result == 0) - return tether_set("wifi", tether->set_tethering); + int ret; + + if (tether->ssid_result == 0 && tether->passphrase_result == 0) { + ret = tether_set("wifi", tether->set_tethering); + g_free(tether); + return ret; + } if (tether->ssid_result != -EINPROGRESS && tether->passphrase_result != -EINPROGRESS) { @@ -725,6 +758,131 @@ static int cmd_disconnect(char *args[], int num, struct connman_option *options) disconnect_return, path, NULL, NULL); } +struct move_service { + char *service; + char *target; +}; + +static int move_before_return(DBusMessageIter *iter, const char *error, + void *user_data) +{ + struct move_service *services = user_data; + char *service; + char *target; + + if (!error) { + service = strrchr(services->service, '/'); + service++; + target = strrchr(services->target, '/'); + target++; + fprintf(stdout, "Moved %s before %s\n", service, target); + } else + fprintf(stderr, "Error %s: %s\n", services->service, error); + + g_free(services->service); + g_free(services->target); + g_free(user_data); + + return 0; +} + +static void move_before_append_args(DBusMessageIter *iter, void *user_data) +{ + char *path = user_data; + + dbus_message_iter_append_basic(iter, + DBUS_TYPE_OBJECT_PATH, &path); + + return; +} + +static int cmd_service_move_before(char *args[], int num, + struct connman_option *options) +{ + const char *iface = "net.connman.Service"; + struct move_service *services; + + if (num > 3) + return -E2BIG; + + if (num < 3) + return -EINVAL; + + if (check_dbus_name(args[1]) == false) + return -EINVAL; + + services = g_new(struct move_service, 1); + + services->service = g_strdup_printf("/net/connman/service/%s", args[1]); + services->target = g_strdup_printf("/net/connman/service/%s", args[2]); + + return __connmanctl_dbus_method_call(connection, CONNMAN_SERVICE, + services->service, iface, "MoveBefore", + move_before_return, services, + move_before_append_args, + services->target); +} + +static int move_after_return(DBusMessageIter *iter, const char *error, + void *user_data) +{ + struct move_service *services = user_data; + char *service; + char *target; + + if (!error) { + service = strrchr(services->service, '/'); + service++; + target = strrchr(services->target, '/'); + target++; + fprintf(stdout, "Moved %s after %s\n", service, target); + } else + fprintf(stderr, "Error %s: %s\n", services->service, error); + + g_free(services->service); + g_free(services->target); + g_free(user_data); + + return 0; +} + +static void move_after_append_args(DBusMessageIter *iter, void *user_data) +{ + char *path = user_data; + + dbus_message_iter_append_basic(iter, + DBUS_TYPE_OBJECT_PATH, &path); + + return; +} + +static int cmd_service_move_after(char *args[], int num, + struct connman_option *options) +{ + const char *iface = "net.connman.Service"; + struct move_service *services; + + if (num > 3) + return -E2BIG; + + if (num < 3) + return -EINVAL; + + if (check_dbus_name(args[1]) == false) + return -EINVAL; + + services = g_new(struct move_service, 1); + + services->service = g_strdup_printf("/net/connman/service/%s", args[1]); + services->target = g_strdup_printf("/net/connman/service/%s", args[2]); + + return __connmanctl_dbus_method_call(connection, CONNMAN_SERVICE, + services->service, iface, "MoveAfter", + move_after_return, services, + move_after_append_args, + services->target); +} + static int config_return(DBusMessageIter *iter, const char *error, void *user_data) { @@ -1738,6 +1896,8 @@ static int session_config(char *args[], int num, int index = 0, res = 0; struct config_append append; char c; + char *ifname; + dbus_bool_t source_ip_rule; while (index < num && args[index]) { append.opts = &args[index]; @@ -1764,6 +1924,41 @@ static int session_config(char *args[], int num, DBUS_TYPE_STRING, &args[index + 1]); append.values = 2; break; + case 'i': + if (index + 1 < num) + ifname = args[index + 1]; + else + ifname = ""; + + res = __connmanctl_dbus_session_change(connection, + session_path, session_config_return, + "AllowedInterface", "AllowedInterface", + DBUS_TYPE_STRING, &ifname); + append.values = 2; + break; + case 's': + if (!args[index + 1]) { + res = -EINVAL; + break; + } + switch (parse_boolean(args[index + 1])) { + case 1: + source_ip_rule = TRUE; + break; + case 0: + source_ip_rule = FALSE; + break; + default: + res = -EINVAL; + break; + } + + res = __connmanctl_dbus_session_change(connection, + session_path, session_config_return, + "SourceIPRule", "SourceIPRule", + DBUS_TYPE_BOOLEAN, &source_ip_rule); + append.values = 2; + break; default: res = -EINVAL; @@ -1838,22 +2033,21 @@ static int cmd_exit(char *args[], int num, struct connman_option *options) return 1; } -static char *lookup_service(const char *text, int state) +static char *lookup_key_from_table(GHashTable *hash, const char *text, + int state) { static int len = 0; static GHashTableIter iter; gpointer key, value; if (state == 0) { - g_hash_table_iter_init(&iter, service_hash); + g_hash_table_iter_init(&iter, hash); len = strlen(text); } - while (g_hash_table_iter_next(&iter, &key, &value)) { - const char *service = key; - if (strncmp(text, service, len) == 0) - return strdup(service); - } + while (g_hash_table_iter_next(&iter, &key, &value)) + if (strncmp(text, key, len) == 0) + return strdup(key); return NULL; } @@ -1865,7 +2059,7 @@ static char *lookup_service_arg(const char *text, int state) return NULL; } - return lookup_service(text, state); + return lookup_key_from_table(service_hash, text, state); } static char *lookup_peer(const char *text, int state) @@ -2009,6 +2203,16 @@ static char *lookup_agent(const char *text, int state) return lookup_on_off(text, state); } +static char *lookup_vpnconnection_arg(const char *text, int state) +{ + if (__connmanctl_input_calc_level() > 1) { + __connmanctl_input_lookup_end(); + return NULL; + } + + return lookup_key_from_table(vpnconnection_hash, text, state); +} + static struct connman_option service_options[] = { {"properties", 'p', "[<service>] (obsolete)"}, { NULL, } @@ -2042,6 +2246,8 @@ static struct connman_option monitor_options[] = { static struct connman_option session_options[] = { {"bearers", 'b', "<technology1> [<technology2> [...]]"}, {"type", 't', "local|internet|any"}, + {"ifname", 'i', "[<interface_name>]"}, + {"srciprule", 's', "yes|no"}, { NULL, } }; @@ -2087,7 +2293,7 @@ static char *lookup_monitor(const char *text, int state) static char *lookup_config(const char *text, int state) { if (__connmanctl_input_calc_level() < 2) - return lookup_service(text, state); + return lookup_key_from_table(service_hash, text, state); return lookup_options(config_options, text, state); } @@ -2400,6 +2606,8 @@ static const struct { "Shows if the system is online or offline", NULL }, { "technologies", NULL, NULL, cmd_technologies, "Display technologies", NULL }, + { "clock", NULL, NULL, cmd_clock, + "Get System Clock Properties", NULL }, { "enable", "<technology>|offline", NULL, cmd_enable, "Enables given technology or offline mode", lookup_technology_offline }, @@ -2422,14 +2630,20 @@ static const struct { "Connect a given service or peer", lookup_service_arg }, { "disconnect", "<service/peer>", NULL, cmd_disconnect, "Disconnect a given service or peer", lookup_service_arg }, + { "move-before", "<service> <target service> ", NULL, + cmd_service_move_before, "Move <service> before <target service>", + lookup_service_arg }, + { "move-after", "<service> <target service> ", NULL, + cmd_service_move_after, "Move <service> after <target service>", + lookup_service_arg }, { "config", "<service>", config_options, cmd_config, "Set service configuration options", lookup_config }, { "monitor", "[off]", monitor_options, cmd_monitor, "Monitor signals from interfaces", lookup_monitor }, { "agent", "on|off", NULL, cmd_agent, "Agent mode", lookup_agent }, - {"vpnconnections", "[<connection>]", NULL, cmd_vpnconnections, - "Display VPN connections", NULL }, + { "vpnconnections", "[<connection>]", NULL, cmd_vpnconnections, + "Display VPN connections", lookup_vpnconnection_arg }, { "vpnagent", "on|off", NULL, cmd_vpnagent, "VPN Agent mode", lookup_agent }, { "session", "on|off|connect|disconnect|config", session_options, @@ -2633,6 +2847,72 @@ static int populate_service_hash(DBusMessageIter *iter, const char *error, return 0; } +static void add_vpnconnection_id(const char *path) +{ + g_hash_table_replace(vpnconnection_hash, g_strdup(path), + GINT_TO_POINTER(TRUE)); +} + +static void remove_vpnconnection_id(const char *path) +{ + g_hash_table_remove(vpnconnection_hash, path); +} + +static void vpnconnection_added(DBusMessageIter *iter) +{ + char *path = NULL; + + dbus_message_iter_get_basic(iter, &path); + add_vpnconnection_id(get_path(path)); +} + +static void vpnconnection_removed(DBusMessageIter *iter) +{ + char *path = NULL; + + dbus_message_iter_get_basic(iter, &path); + remove_vpnconnection_id(get_path(path)); +} + +static void add_vpnconnections(DBusMessageIter *iter) +{ + DBusMessageIter array; + char *path = NULL; + + while (dbus_message_iter_get_arg_type(iter) == DBUS_TYPE_STRUCT) { + + dbus_message_iter_recurse(iter, &array); + if (dbus_message_iter_get_arg_type(&array) != + DBUS_TYPE_OBJECT_PATH) + return; + + dbus_message_iter_get_basic(&array, &path); + add_vpnconnection_id(get_path(path)); + + dbus_message_iter_next(iter); + } +} + +static int populate_vpnconnection_hash(DBusMessageIter *iter, const char *error, + void *user_data) +{ + DBusMessageIter array; + + if (error) { + fprintf(stderr, "Error getting VPN connections: %s", error); + return 0; + } + + if (dbus_message_iter_get_arg_type(iter) != DBUS_TYPE_ARRAY) + return 0; + + dbus_message_iter_recurse(iter, &array); + + add_vpnconnections(&array); + + return 0; +} + static void add_peer_id(const char *path) { g_hash_table_replace(peer_hash, g_strdup(path), GINT_TO_POINTER(TRUE)); @@ -2785,6 +3065,20 @@ static DBusHandlerResult monitor_completions_changed( return handled; } + if (dbus_message_is_signal(message, "net.connman.vpn.Manager", + "ConnectionAdded")) { + dbus_message_iter_init(message, &iter); + vpnconnection_added(&iter); + return handled; + } + + if (dbus_message_is_signal(message, "net.connman.vpn.Manager", + "ConnectionRemoved")) { + dbus_message_iter_init(message, &iter); + vpnconnection_removed(&iter); + return handled; + } + if (dbus_message_is_signal(message, "net.connman.Manager", "PeersChanged")) { dbus_message_iter_init(message, &iter); @@ -2828,10 +3122,14 @@ void __connmanctl_monitor_completions(DBusConnection *dbus_conn) if (!dbus_conn) { g_hash_table_destroy(service_hash); + g_hash_table_destroy(vpnconnection_hash); g_hash_table_destroy(technology_hash); dbus_bus_remove_match(connection, "type='signal',interface='net.connman.Manager'", NULL); + dbus_bus_remove_match(connection, + "type='signal',interface='net.connman.vpn.Manager'", + NULL); dbus_connection_remove_filter(connection, monitor_completions_changed, manager_enabled); @@ -2843,6 +3141,9 @@ void __connmanctl_monitor_completions(DBusConnection *dbus_conn) service_hash = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL); + vpnconnection_hash = g_hash_table_new_full(g_str_hash, g_str_equal, + g_free, NULL); + peer_hash = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL); @@ -2855,6 +3156,11 @@ void __connmanctl_monitor_completions(DBusConnection *dbus_conn) populate_service_hash, NULL, NULL, NULL); __connmanctl_dbus_method_call(connection, + VPN_SERVICE, CONNMAN_PATH, + "net.connman.vpn.Manager", "GetConnections", + populate_vpnconnection_hash, NULL, NULL, NULL); + + __connmanctl_dbus_method_call(connection, CONNMAN_SERVICE, CONNMAN_PATH, "net.connman.Manager", "GetPeers", populate_peer_hash, NULL, NULL, NULL); @@ -2872,6 +3178,15 @@ void __connmanctl_monitor_completions(DBusConnection *dbus_conn) dbus_bus_add_match(connection, "type='signal',interface='net.connman.Manager'", &err); + if (dbus_error_is_set(&err)) { + fprintf(stderr, "Error: %s\n", err.message); + return; + } + + dbus_bus_add_match(connection, + "type='signal',interface='net.connman.vpn.Manager'", + &err); + if (dbus_error_is_set(&err)) fprintf(stderr, "Error: %s\n", err.message); } diff --git a/client/dbus_helpers.c b/client/dbus_helpers.c index d9057463..6ca407d4 100755 --- a/client/dbus_helpers.c +++ b/client/dbus_helpers.c @@ -22,6 +22,7 @@ #include <stdio.h> #include <errno.h> +#include <inttypes.h> #include <glib.h> #include "input.h" @@ -38,6 +39,7 @@ void __connmanctl_dbus_print(DBusMessageIter *iter, const char *pre, dbus_uint16_t u16; dbus_uint32_t u; dbus_int32_t i; + dbus_uint64_t u64; double d; char *str; @@ -113,6 +115,11 @@ void __connmanctl_dbus_print(DBusMessageIter *iter, const char *pre, fprintf(stdout, "%d", i); break; + case DBUS_TYPE_UINT64: + dbus_message_iter_get_basic(iter, &u64); + fprintf(stdout, "%"PRIu64, u64); + break; + case DBUS_TYPE_DOUBLE: dbus_message_iter_get_basic(iter, &d); fprintf(stdout, "%f", d); @@ -145,6 +152,7 @@ static void dbus_method_reply(DBusPendingCall *call, void *user_data) __connmanctl_save_rl(); reply = dbus_pending_call_steal_reply(call); + dbus_pending_call_unref(call); if (dbus_message_get_type(reply) == DBUS_MESSAGE_TYPE_ERROR) { DBusError err; diff --git a/client/input.c b/client/input.c index 4e5e4962..d9d2b7b1 100755 --- a/client/input.c +++ b/client/input.c @@ -103,8 +103,9 @@ static void rl_handler(char *input) } if (len > 0) { - - add_history(input); + HIST_ENTRY *previous = history_get(where_history()); + if(!previous || strcmp(previous->line, input)) + add_history(input); err = __connmanctl_commands(connection, trim_args, len); @@ -114,6 +115,7 @@ static void rl_handler(char *input) g_strfreev(args); g_free(trim_args); + free(input); } static gboolean input_handler(GIOChannel *channel, GIOCondition condition, diff --git a/configure b/configure deleted file mode 100755 index ddc65551..00000000 --- a/configure +++ /dev/null @@ -1,15957 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for connman 1.29. -# -# -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -# -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# Use a proper internal environment variable to ensure we don't fall - # into an infinite loop, continuously re-executing ourselves. - if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then - _as_can_reexec=no; export _as_can_reexec; - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 - fi - # We don't want this to propagate to other subprocesses. - { _as_can_reexec=; unset _as_can_reexec;} -if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi -" - as_required="as_fn_return () { (exit \$1); } -as_fn_success () { as_fn_return 0; } -as_fn_failure () { as_fn_return 1; } -as_fn_ret_success () { return 0; } -as_fn_ret_failure () { return 1; } - -exitcode=0 -as_fn_success || { exitcode=1; echo as_fn_success failed.; } -as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } -as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } -as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : - -else - exitcode=1; echo positional parameters were not saved. -fi -test x\$exitcode = x0 || exit 1 -test -x / || exit 1" - 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'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 - - test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( - ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO - ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO - PATH=/empty FPATH=/empty; export PATH FPATH - test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ - || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 -test \$(( 1 + 1 )) = 2 || exit 1" - if (eval "$as_required") 2>/dev/null; then : - as_have_required=yes -else - as_have_required=no -fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : - -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_found=false -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - as_found=: - case $as_dir in #( - /*) - for as_base in sh bash ksh sh5; do - # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : - CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : - break 2 -fi -fi - done;; - esac - as_found=false -done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } -IFS=$as_save_IFS - - - if test "x$CONFIG_SHELL" != x; then : - export CONFIG_SHELL - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -exit 255 -fi - - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." - else - $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, -$0: including any error possibly output before this -$0: message. Then install a modern shell, or manually run -$0: the script under such a shell if you do have one." - fi - exit 1 -fi -fi -fi -SHELL=${CONFIG_SHELL-/bin/sh} -export SHELL -# Unset more variables known to interfere with behavior of common tools. -CLICOLOR_FORCE= GREP_OPTIONS= -unset CLICOLOR_FORCE GREP_OPTIONS - -## --------------------- ## -## M4sh Shell Functions. ## -## --------------------- ## -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - - - as_lineno_1=$LINENO as_lineno_1a=$LINENO - as_lineno_2=$LINENO as_lineno_2a=$LINENO - eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && - test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - 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). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... 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'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# 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'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - -SHELL=${CONFIG_SHELL-/bin/sh} - - -test -n "$DJDIR" || exec 7<&0 </dev/null -exec 6>&1 - -# Name of the host. -# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= - -# Identity of this package. -PACKAGE_NAME='connman' -PACKAGE_TARNAME='connman' -PACKAGE_VERSION='1.29' -PACKAGE_STRING='connman 1.29' -PACKAGE_BUGREPORT='' -PACKAGE_URL='' - -ac_default_prefix=/usr/local -# Factoring default headers for most tests. -ac_includes_default="\ -#include <stdio.h> -#ifdef HAVE_SYS_TYPES_H -# include <sys/types.h> -#endif -#ifdef HAVE_SYS_STAT_H -# include <sys/stat.h> -#endif -#ifdef STDC_HEADERS -# include <stdlib.h> -# include <stddef.h> -#else -# ifdef HAVE_STDLIB_H -# include <stdlib.h> -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include <memory.h> -# endif -# include <string.h> -#endif -#ifdef HAVE_STRINGS_H -# include <strings.h> -#endif -#ifdef HAVE_INTTYPES_H -# include <inttypes.h> -#endif -#ifdef HAVE_STDINT_H -# include <stdint.h> -#endif -#ifdef HAVE_UNISTD_H -# include <unistd.h> -#endif" - -ac_subst_vars='am__EXEEXT_FALSE -am__EXEEXT_TRUE -LTLIBOBJS -LIBOBJS -VPN_FALSE -VPN_TRUE -DATAFILES_FALSE -DATAFILES_TRUE -WPASUPPLICANT -GNUTLS_LIBS -GNUTLS_CFLAGS -CLIENT_FALSE -CLIENT_TRUE -IPTABLES_SAVE -TOOLS_FALSE -TOOLS_TRUE -WISPR_FALSE -WISPR_TRUE -NEARD_FALSE -NEARD_TRUE -PACRUNNER_FALSE -PACRUNNER_TRUE -DUNDEE_FALSE -DUNDEE_TRUE -OFONO_FALSE -OFONO_TRUE -BLUETOOTH_FALSE -BLUETOOTH_TRUE -WIFI_FALSE -WIFI_TRUE -GADGET_FALSE -GADGET_TRUE -ETHERNET_FALSE -ETHERNET_TRUE -LOOPBACK_FALSE -LOOPBACK_TRUE -SELINUX_FALSE -SELINUX_TRUE -POLKIT_FALSE -POLKIT_TRUE -POLKIT_DATADIR -NMCOMPAT_FALSE -NMCOMPAT_TRUE -TEST_FALSE -TEST_TRUE -XTABLES_LIBS -XTABLES_CFLAGS -SYSTEMD_FALSE -SYSTEMD_TRUE -SYSTEMD_UNITDIR -DBUS_DATADIR -DBUS_CONFDIR -DBUS_LIBS -DBUS_CFLAGS -GLIB_LIBS -GLIB_CFLAGS -SESSION_POLICY_LOCAL_BUILTIN_FALSE -SESSION_POLICY_LOCAL_BUILTIN_TRUE -SESSION_POLICY_LOCAL_FALSE -SESSION_POLICY_LOCAL_TRUE -TIST_BUILTIN_FALSE -TIST_BUILTIN_TRUE -TIST_FALSE -TIST_TRUE -IOSPM_FALSE -IOSPM_TRUE -PPTP_BUILTIN_FALSE -PPTP_BUILTIN_TRUE -PPTP_FALSE -PPTP_TRUE -PPTP -L2TP_BUILTIN_FALSE -L2TP_BUILTIN_TRUE -L2TP_FALSE -L2TP_TRUE -L2TP -PPPD -VPNC_BUILTIN_FALSE -VPNC_BUILTIN_TRUE -VPNC_FALSE -VPNC_TRUE -VPNC -OPENVPN_BUILTIN_FALSE -OPENVPN_BUILTIN_TRUE -OPENVPN_FALSE -OPENVPN_TRUE -OPENVPN -OPENCONNECT_BUILTIN_FALSE -OPENCONNECT_BUILTIN_TRUE -OPENCONNECT_FALSE -OPENCONNECT_TRUE -OPENCONNECT -HH2SERIAL_GPS_BUILTIN_FALSE -HH2SERIAL_GPS_BUILTIN_TRUE -HH2SERIAL_GPS_FALSE -HH2SERIAL_GPS_TRUE -CPP -OTOOL64 -OTOOL -LIPO -NMEDIT -DSYMUTIL -MANIFEST_TOOL -RANLIB -ac_ct_AR -AR -DLLTOOL -OBJDUMP -LN_S -NM -ac_ct_DUMPBIN -DUMPBIN -LD -FGREP -EGREP -GREP -SED -host_os -host_vendor -host_cpu -host -build_os -build_vendor -build_cpu -build -LIBTOOL -am__fastdepCC_FALSE -am__fastdepCC_TRUE -CCDEPMODE -am__nodep -AMDEPBACKSLASH -AMDEP_FALSE -AMDEP_TRUE -am__quote -am__include -DEPDIR -OBJEXT -EXEEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -CC -abs_top_builddir -abs_top_srcdir -PKG_CONFIG_LIBDIR -PKG_CONFIG_PATH -PKG_CONFIG -MAINT -MAINTAINER_MODE_FALSE -MAINTAINER_MODE_TRUE -AM_BACKSLASH -AM_DEFAULT_VERBOSITY -AM_DEFAULT_V -AM_V -am__untar -am__tar -AMTAR -am__leading_dot -SET_MAKE -AWK -mkdir_p -MKDIR_P -INSTALL_STRIP_PROGRAM -STRIP -install_sh -MAKEINFO -AUTOHEADER -AUTOMAKE -AUTOCONF -ACLOCAL -VERSION -PACKAGE -CYGPATH_W -am__isrc -INSTALL_DATA -INSTALL_SCRIPT -INSTALL_PROGRAM -target_alias -host_alias -build_alias -LIBS -ECHO_T -ECHO_N -ECHO_C -DEFS -mandir -localedir -libdir -psdir -pdfdir -dvidir -htmldir -infodir -docdir -oldincludedir -includedir -localstatedir -sharedstatedir -sysconfdir -datadir -datarootdir -libexecdir -sbindir -bindir -program_transform_name -prefix -exec_prefix -PACKAGE_URL -PACKAGE_BUGREPORT -PACKAGE_STRING -PACKAGE_VERSION -PACKAGE_TARNAME -PACKAGE_NAME -PATH_SEPARATOR -SHELL' -ac_subst_files='' -ac_user_opts=' -enable_option_checking -enable_silent_rules -enable_maintainer_mode -enable_dependency_tracking -enable_static -enable_shared -with_pic -enable_fast_install -with_gnu_ld -with_sysroot -enable_libtool_lock -enable_optimization -enable_debug -enable_pie -enable_hh2serial_gps -with_openconnect -enable_openconnect -with_openvpn -enable_openvpn -with_vpnc -enable_vpnc -with_l2tp -enable_l2tp -with_pptp -enable_pptp -enable_iospm -enable_tist -enable_session_policy_local -with_stats_max_file_size -with_dbusconfdir -with_dbusdatadir -with_systemdunitdir -enable_test -enable_nmcompat -enable_polkit -enable_selinux -enable_loopback -enable_ethernet -enable_gadget -enable_wifi -enable_bluetooth -enable_ofono -enable_dundee -enable_pacrunner -enable_neard -enable_wispr -enable_tools -enable_client -enable_datafiles -' - ac_precious_vars='build_alias -host_alias -target_alias -PKG_CONFIG -PKG_CONFIG_PATH -PKG_CONFIG_LIBDIR -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CPP -GLIB_CFLAGS -GLIB_LIBS -DBUS_CFLAGS -DBUS_LIBS -XTABLES_CFLAGS -XTABLES_LIBS -GNUTLS_CFLAGS -GNUTLS_LIBS' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -ac_unrecognized_opts= -ac_unrecognized_sep= -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *=) ac_optarg= ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - case $ac_envvar in #( - '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; - esac - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error $? "missing argument to $ac_option" -fi - -if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; - fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; - esac -fi - -# Check all directory arguments for consistency. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - # Remove trailing slashes. - case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; - esac - # Be sure to have absolute directory names. - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error $? "working directory cannot be determined" -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error $? "pwd does not report name of working directory" - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$as_myself" || -$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_myself" : 'X\(//\)[^/]' \| \ - X"$as_myself" : 'X\(//\)$' \| \ - X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures connman 1.29 to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking ...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/connman] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF - -Program names: - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM run sed PROGRAM on installed program names - -System types: - --build=BUILD configure for building on BUILD [guessed] - --host=HOST cross-compile to build programs to run on HOST [BUILD] -_ACEOF -fi - -if test -n "$ac_init_help"; then - case $ac_init_help in - short | recursive ) echo "Configuration of connman 1.29:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-silent-rules less verbose build output (undo: `make V=1') - --disable-silent-rules verbose build output (undo: `make V=0') - --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer - --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors - --enable-static[=PKGS] build static libraries [default=no] - --enable-shared[=PKGS] build shared libraries [default=yes] - --enable-fast-install[=PKGS] - optimize for fast installation [default=yes] - --disable-libtool-lock avoid locking (might break parallel builds) - --disable-optimization disable code optimization through compiler - --enable-debug enable compiling with debugging information - --enable-pie enable position independent executables flag - --enable-hh2serial-gps enable hh2serial GPS support - --enable-openconnect enable openconnect support - --enable-openvpn enable openvpn support - --enable-vpnc enable vpnc support - --enable-l2tp enable l2tp support - --enable-pptp enable pptp support - --enable-iospm enable Intel OSPM support - --enable-tist enable TI Shared Transport support - --enable-session-policy-local - enable local file Session policy configuration - support - --enable-test enable test/example scripts - --enable-nmcompat enable Network Manager support - --enable-polkit enable PolicyKit support - --enable-selinux enable selinux support - --disable-loopback disable loopback support - --disable-ethernet disable Ethernet support - --disable-gadget disable USB Gadget support - --disable-wifi disable WiFi support - --disable-bluetooth disable Bluetooth support - --disable-ofono disable oFono support - --disable-dundee disable dundee support (Bluetooth DUN) - --disable-pacrunner disable PACrunner support - --disable-neard disable Neard support - --disable-wispr disable WISPr support - --disable-tools disable testing tools - --disable-client disable command line client - --disable-datafiles don't install configuration and data files - -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 - both] - --with-gnu-ld assume the C compiler uses GNU ld [default=no] - --with-sysroot=DIR Search for dependent libraries within DIR - (or the compiler's sysroot if not specified). - --with-openconnect=PROGRAM - specify location of openconnect binary - --with-openvpn=PROGRAM specify location of openvpn binary - --with-vpnc=PROGRAM specify location of vpnc binary - --with-l2tp=PROGRAM specify location of l2tp binary - --with-pptp=PROGRAM specify location of pptp binary - --with-stats-max-file-size=SIZE - Maximal size of a statistics round robin file - --with-dbusconfdir=PATH path to D-Bus config directory - --with-dbusdatadir=PATH path to D-Bus data directory - --with-systemdunitdir=DIR - path to systemd service directory - -Some influential environment variables: - PKG_CONFIG path to pkg-config utility - PKG_CONFIG_PATH - directories to add to pkg-config's search path - PKG_CONFIG_LIBDIR - path overriding pkg-config's built-in search path - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a - nonstandard directory <lib dir> - LIBS libraries to pass to the linker, e.g. -l<library> - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if - you have headers in a nonstandard directory <include dir> - CPP C preprocessor - GLIB_CFLAGS C compiler flags for GLIB, overriding pkg-config - GLIB_LIBS linker flags for GLIB, overriding pkg-config - DBUS_CFLAGS C compiler flags for DBUS, overriding pkg-config - DBUS_LIBS linker flags for DBUS, overriding pkg-config - XTABLES_CFLAGS - C compiler flags for XTABLES, overriding pkg-config - XTABLES_LIBS - linker flags for XTABLES, overriding pkg-config - GNUTLS_CFLAGS - C compiler flags for GNUTLS, overriding pkg-config - GNUTLS_LIBS linker flags for GNUTLS, overriding pkg-config - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to the package provider. -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || - { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || - continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -connman configure 1.29 -generated by GNU Autoconf 2.69 - -Copyright (C) 2012 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit -fi - -## ------------------------ ## -## Autoconf initialization. ## -## ------------------------ ## - -# ac_fn_c_try_compile LINENO -# -------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_compile - -# ac_fn_c_try_link LINENO -# ----------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - test -x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_link - -# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists and can be compiled using the include files in -# INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_compile - -# ac_fn_c_try_cpp LINENO -# ---------------------- -# Try to preprocess conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_cpp - -# ac_fn_c_try_run LINENO -# ---------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes -# that executables *can* be run. -ac_fn_c_try_run () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_run - -# ac_fn_c_check_func LINENO FUNC VAR -# ---------------------------------- -# Tests whether FUNC exists, setting the cache variable VAR accordingly -ac_fn_c_check_func () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Define $2 to an innocuous variant, in case <limits.h> declares $2. - For example, HP-UX 11i <limits.h> declares gettimeofday. */ -#define $2 innocuous_$2 - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. - Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - <limits.h> exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - -#undef $2 - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $2 (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$2 || defined __stub___$2 -choke me -#endif - -int -main () -{ -return $2 (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_func - -# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists, giving a warning if it cannot be compiled using -# the include files in INCLUDES and setting the cache variable VAR -# accordingly. -ac_fn_c_check_header_mongrel () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval \${$3+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <$2> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_mongrel -cat >config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by connman $as_me 1.29, which was -generated by GNU Autoconf 2.69. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" - done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; - 2) - as_fn_append ac_configure_args1 " '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - as_fn_append ac_configure_args " '$ac_arg'" - ;; - esac - done -done -{ ac_configure_args0=; unset ac_configure_args0;} -{ ac_configure_args1=; unset ac_configure_args1;} - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - $as_echo "## ---------------- ## -## Cache variables. ## -## ---------------- ##" - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - $as_echo "## ----------------- ## -## Output variables. ## -## ----------------- ##" - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## -## File substitutions. ## -## ------------------- ##" - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - $as_echo "## ----------- ## -## confdefs.h. ## -## ----------- ##" - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -$as_echo "/* confdefs.h */" > confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_URL "$PACKAGE_URL" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE -if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in #(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac -elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site -else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site -fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" -do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5; } - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special files - # actually), so we avoid doing that. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -am__api_version='1.11' - -ac_aux_dir= -for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -# Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } -if test -z "$INSTALL"; then -if ${ac_cv_path_install+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in #(( - ./ | .// | /[cC]/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # 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 $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. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - rm -rf conftest.one conftest.two conftest.dir - echo one > conftest.one - echo two > conftest.two - mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && - test -s conftest.one && test -s conftest.two && - test -s conftest.dir/conftest.one && - test -s conftest.dir/conftest.two - then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - fi - done - done - ;; -esac - - done -IFS=$as_save_IFS - -rm -rf conftest.one conftest.two conftest.dir - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 -$as_echo_n "checking whether build environment is sane... " >&6; } -# Just in case -sleep 1 -echo timestamp > conftest.file -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[\\\"\#\$\&\'\`$am_lf]*) - as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; -esac -case $srcdir in - *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; -esac - -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - rm -f conftest.file - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error $? "ls -t appears to fail. Make sure there is not a broken -alias in your environment" "$LINENO" 5 - fi - - test "$2" = conftest.file - ) -then - # Ok. - : -else - as_fn_error $? "newly created file is older than distributed files! -Check your system clock" "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -test "$program_prefix" != NONE && - program_transform_name="s&^&$program_prefix&;$program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s&\$&$program_suffix&;$program_transform_name" -# Double any \ or $. -# By default was `s,x,x', remove it if useless. -ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' -program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` - -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` - -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -else - am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} -fi - -if test x"${install_sh}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi - -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -if test "$cross_compiling" != no; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 -$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } -if test -z "$MKDIR_P"; then - if ${ac_cv_path_mkdir+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin -do - IFS=$as_save_IFS - 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 - case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( - 'mkdir (GNU coreutils) '* | \ - 'mkdir (coreutils) '* | \ - 'mkdir (fileutils) '4.1*) - ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext - break 3;; - esac - done - done - done -IFS=$as_save_IFS - -fi - - test -d ./--version && rmdir ./--version - if test "${ac_cv_path_mkdir+set}" = set; then - MKDIR_P="$ac_cv_path_mkdir -p" - else - # As a last resort, use the slow shell script. Don't cache a - # value for MKDIR_P within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - MKDIR_P="$ac_install_sh -d" - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 -$as_echo "$MKDIR_P" >&6; } - -mkdir_p="$MKDIR_P" -case $mkdir_p in - [\\/$]* | ?:[\\/]*) ;; - */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; -esac - -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AWK+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - ac_cv_prog_AWK="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 -$as_echo "$AWK" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$AWK" && break -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - -rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null - -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - am__isrc=' -I$(srcdir)' - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi - - -# Define the identity of the package. - PACKAGE='connman' - VERSION='1.29' - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF - -# Some tools Automake needs. - -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} - - -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} - - -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} - - -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} - - -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AMTAR='$${TAR-tar}' - -am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' - - - - - -ac_config_headers="$ac_config_headers config.h" - - -# Check whether --enable-silent-rules was given. -if test "${enable_silent_rules+set}" = set; then : - enableval=$enable_silent_rules; -fi - -case $enable_silent_rules in -yes) AM_DEFAULT_VERBOSITY=0;; -no) AM_DEFAULT_VERBOSITY=1;; -*) AM_DEFAULT_VERBOSITY=0;; -esac -am_make=${MAKE-make} -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 -$as_echo_n "checking whether $am_make supports nested variables... " >&6; } -if ${am_cv_make_support_nested_variables+:} false; then : - $as_echo_n "(cached) " >&6 -else - if $as_echo 'TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 -$as_echo "$am_cv_make_support_nested_variables" >&6; } -if test $am_cv_make_support_nested_variables = yes; then - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AM_BACKSLASH='\' - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 -$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } - # Check whether --enable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then : - enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval -else - USE_MAINTAINER_MODE=no -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 -$as_echo "$USE_MAINTAINER_MODE" >&6; } - if test $USE_MAINTAINER_MODE = yes; then - MAINTAINER_MODE_TRUE= - MAINTAINER_MODE_FALSE='#' -else - MAINTAINER_MODE_TRUE='#' - MAINTAINER_MODE_FALSE= -fi - - MAINT=$MAINTAINER_MODE_TRUE - - - - - - - - - - - - -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. -set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_PKG_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG -if test -n "$PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 -$as_echo "$PKG_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_path_PKG_CONFIG"; then - ac_pt_PKG_CONFIG=$PKG_CONFIG - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $ac_pt_PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG -if test -n "$ac_pt_PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 -$as_echo "$ac_pt_PKG_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_pt_PKG_CONFIG" = x; then - PKG_CONFIG="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - PKG_CONFIG=$ac_pt_PKG_CONFIG - fi -else - PKG_CONFIG="$ac_cv_path_PKG_CONFIG" -fi - -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=0.9.0 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 -$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - PKG_CONFIG="" - fi -fi - - - if (test "${CFLAGS}" = ""); then - CFLAGS="-Wall -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2" - fi - if (test "$USE_MAINTAINER_MODE" = "yes"); then - CFLAGS+=" -Werror -Wextra" - CFLAGS+=" -Wno-unused-parameter" - CFLAGS+=" -Wno-missing-field-initializers" - CFLAGS+=" -Wdeclaration-after-statement" - CFLAGS+=" -Wmissing-declarations" - CFLAGS+=" -Wredundant-decls" - CFLAGS+=" -Wcast-align" - CFLAGS="$CFLAGS -DG_DISABLE_DEPRECATED" - fi - - - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { { ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -ac_exeext=$ac_cv_exeext - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <stdio.h> -int -main () -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <stdarg.h> -#include <stdio.h> -struct stat; -/* 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); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -DEPDIR="${am__leading_dot}deps" - -ac_config_commands="$ac_config_commands depfiles" - - -am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo this is the am__doit target -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 -$as_echo_n "checking for style of include used by $am_make... " >&6; } -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from `make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 -$as_echo "$_am_result" >&6; } -rm -f confinc confmf - -# Check whether --enable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then : - enableval=$enable_dependency_tracking; -fi - -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' - am__nodep='_no' -fi - if test "x$enable_dependency_tracking" != xno; then - AMDEP_TRUE= - AMDEP_FALSE='#' -else - AMDEP_TRUE='#' - AMDEP_FALSE= -fi - - - -depcc="$CC" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CC_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # 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. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | 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. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - -if test "x$CC" != xcc; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5 -$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5 -$as_echo_n "checking whether cc understands -c and -o together... " >&6; } -fi -set dummy $CC; ac_cc=`$as_echo "$2" | - sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` -if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -# Make sure it works both with $CC and with simple cc. -# We do the test twice because some compilers refuse to overwrite an -# existing .o file with -o, though they will create one. -ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' -rm -f conftest2.* -if { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && - test -f conftest2.$ac_objext && { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; -then - eval ac_cv_prog_cc_${ac_cc}_c_o=yes - if test "x$CC" != xcc; then - # Test first that cc exists at all. - if { ac_try='cc -c conftest.$ac_ext >&5' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' - rm -f conftest2.* - if { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && - test -f conftest2.$ac_objext && { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; - then - # cc works too. - : - else - # cc exists but doesn't like -o. - eval ac_cv_prog_cc_${ac_cc}_c_o=no - fi - fi - fi -else - eval ac_cv_prog_cc_${ac_cc}_c_o=no -fi -rm -f core conftest* - -fi -if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h - -fi - -# FIXME: we rely on the cache variable name because -# there is no other way. -set dummy $CC -am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` -eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o -if test "$am_t" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CC-cc} accepts -fPIE" >&5 -$as_echo_n "checking whether ${CC-cc} accepts -fPIE... " >&6; } -if ${ac_cv_prog_cc_pie+:} false; then : - $as_echo_n "(cached) " >&6 -else - - echo 'void f(){}' > conftest.c - if test -z "`${CC-cc} -fPIE -pie -c conftest.c 2>&1`"; then - ac_cv_prog_cc_pie=yes - else - ac_cv_prog_cc_pie=no - fi - rm -rf conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_pie" >&5 -$as_echo "$ac_cv_prog_cc_pie" >&6; } - - - - - - - -# Check whether --enable-static was given. -if test "${enable_static+set}" = set; then : - enableval=$enable_static; p=${PACKAGE-default} - case $enableval in - yes) enable_static=yes ;; - no) enable_static=no ;; - *) - enable_static=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_static=no -fi - - - - - - - - - -case `pwd` in - *\ * | *\ *) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 -$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; -esac - - - -macro_version='2.4.2' -macro_revision='1.3337' - - - - - - - - - - - - - -ltmain="$ac_aux_dir/ltmain.sh" - -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if ${ac_cv_build+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` -test "x$ac_build_alias" = x && - as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } -case $ac_cv_build in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if ${ac_cv_host+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "x$host_alias" = x; then - ac_cv_host=$ac_cv_build -else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } -case $ac_cv_host in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - -# Backslashify metacharacters that are still active within -# double-quoted strings. -sed_quote_subst='s/\(["`$\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\(["`\\]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to delay expansion of an escaped single quote. -delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' - -ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 -$as_echo_n "checking how to print strings... " >&6; } -# Test print first, because it will be a builtin if present. -if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' -elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='printf %s\n' -else - # Use this function as a fallback that always works. - func_fallback_echo () - { - eval 'cat <<_LTECHO_EOF -$1 -_LTECHO_EOF' - } - ECHO='func_fallback_echo' -fi - -# func_echo_all arg... -# Invoke $ECHO with all args, space-separated. -func_echo_all () -{ - $ECHO "" -} - -case "$ECHO" in - printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 -$as_echo "printf" >&6; } ;; - print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 -$as_echo "print -r" >&6; } ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 -$as_echo "cat" >&6; } ;; -esac - - - - - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 -$as_echo_n "checking for a sed that does not truncate output... " >&6; } -if ${ac_cv_path_SED+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ - for ac_i in 1 2 3 4 5 6 7; do - ac_script="$ac_script$as_nl$ac_script" - done - echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed - { ac_script=; unset ac_script;} - if test -z "$SED"; then - ac_path_SED_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - 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 -# 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 -*GNU*) - ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo '' >> "conftest.nl" - "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_SED_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_SED="$ac_path_SED" - ac_path_SED_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_SED_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_SED"; then - as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 - fi -else - ac_cv_path_SED=$SED -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 -$as_echo "$ac_cv_path_SED" >&6; } - SED="$ac_cv_path_SED" - rm -f conftest.sed - -test -z "$SED" && SED=sed -Xsed="$SED -e 1s/^X//" - - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - 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 -# 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 -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - 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 -# 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 -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 -$as_echo_n "checking for fgrep... " >&6; } -if ${ac_cv_path_FGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 - then ac_cv_path_FGREP="$GREP -F" - else - if test -z "$FGREP"; then - ac_path_FGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - 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 -# 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 -*GNU*) - ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'FGREP' >> "conftest.nl" - "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_FGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_FGREP="$ac_path_FGREP" - ac_path_FGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_FGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_FGREP"; then - as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_FGREP=$FGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 -$as_echo "$ac_cv_path_FGREP" >&6; } - FGREP="$ac_cv_path_FGREP" - - -test -z "$GREP" && GREP=grep - - - - - - - - - - - - - - - - - - - -# Check whether --with-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then : - withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes -else - with_gnu_ld=no -fi - -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 -$as_echo_n "checking for ld used by $CC... " >&6; } - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [\\/]* | ?:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` - while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do - ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 -$as_echo_n "checking for GNU ld... " >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 -$as_echo_n "checking for non-GNU ld... " >&6; } -fi -if ${lt_cv_path_LD+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in - *GNU* | *'with BFD'*) - test "$with_gnu_ld" != no && break - ;; - *) - test "$with_gnu_ld" != yes && break - ;; - esac - fi - done - IFS="$lt_save_ifs" -else - lt_cv_path_LD="$LD" # Let the user override the test with a path. -fi -fi - -LD="$lt_cv_path_LD" -if test -n "$LD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 -$as_echo "$LD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 -$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } -if ${lt_cv_prog_gnu_ld+:} false; then : - $as_echo_n "(cached) " >&6 -else - # I'd rather use --version here, but apparently some GNU lds only accept -v. -case `$LD -v 2>&1 </dev/null` in -*GNU* | *'with BFD'*) - lt_cv_prog_gnu_ld=yes - ;; -*) - lt_cv_prog_gnu_ld=no - ;; -esac -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5 -$as_echo "$lt_cv_prog_gnu_ld" >&6; } -with_gnu_ld=$lt_cv_prog_gnu_ld - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 -$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } -if ${lt_cv_path_NM+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" -else - lt_nm_to_check="${ac_tool_prefix}nm" - if test -n "$ac_tool_prefix" && test "$build" = "$host"; then - lt_nm_to_check="$lt_nm_to_check nm" - fi - for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/$lt_tmp_nm" - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - # Tru64's nm complains that /dev/null is an invalid object file - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break - ;; - *) - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - ;; - esac - ;; - esac - fi - done - IFS="$lt_save_ifs" - done - : ${lt_cv_path_NM=no} -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 -$as_echo "$lt_cv_path_NM" >&6; } -if test "$lt_cv_path_NM" != "no"; then - NM="$lt_cv_path_NM" -else - # Didn't find any BSD compatible name lister, look for dumpbin. - if test -n "$DUMPBIN"; then : - # Let the user override the test. - else - if test -n "$ac_tool_prefix"; then - for ac_prog in dumpbin "link -dump" - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_DUMPBIN+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DUMPBIN"; then - ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DUMPBIN=$ac_cv_prog_DUMPBIN -if test -n "$DUMPBIN"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 -$as_echo "$DUMPBIN" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$DUMPBIN" && break - done -fi -if test -z "$DUMPBIN"; then - ac_ct_DUMPBIN=$DUMPBIN - for ac_prog in dumpbin "link -dump" -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DUMPBIN"; then - ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN -if test -n "$ac_ct_DUMPBIN"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 -$as_echo "$ac_ct_DUMPBIN" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_DUMPBIN" && break -done - - if test "x$ac_ct_DUMPBIN" = x; then - DUMPBIN=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DUMPBIN=$ac_ct_DUMPBIN - fi -fi - - case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in - *COFF*) - DUMPBIN="$DUMPBIN -symbols" - ;; - *) - DUMPBIN=: - ;; - esac - fi - - if test "$DUMPBIN" != ":"; then - NM="$DUMPBIN" - fi -fi -test -z "$NM" && NM=nm - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 -$as_echo_n "checking the name lister ($NM) interface... " >&6; } -if ${lt_cv_nm_interface+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_nm_interface="BSD nm" - echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) - (eval "$ac_compile" 2>conftest.err) - cat conftest.err >&5 - (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) - (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) - cat conftest.err >&5 - (eval echo "\"\$as_me:$LINENO: output\"" >&5) - cat conftest.out >&5 - if $GREP 'External.*some_variable' conftest.out > /dev/null; then - lt_cv_nm_interface="MS dumpbin" - fi - rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 -$as_echo "$lt_cv_nm_interface" >&6; } - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 -$as_echo_n "checking whether ln -s works... " >&6; } -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 -$as_echo "no, using $LN_S" >&6; } -fi - -# find the maximum length of command line arguments -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 -$as_echo_n "checking the maximum length of command line arguments... " >&6; } -if ${lt_cv_sys_max_cmd_len+:} false; then : - $as_echo_n "(cached) " >&6 -else - i=0 - teststring="ABCD" - - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc - # (any single argument exceeding 2000 bytes causes a buffer overrun - # during glob expansion). Even if it were fixed, the result of this - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=12288; # 12K is about right - ;; - - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=-1; - ;; - - cygwin* | mingw* | cegcc*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=8192; - ;; - - mint*) - # On MiNT this can take a long time and run out of memory. - lt_cv_sys_max_cmd_len=8192; - ;; - - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=8192; - ;; - - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs - fi - # And add a safety zone - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - ;; - - interix*) - # We know the value 262144 and hardcode it with a safety zone (like BSD) - 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 - # nice to cause kernel panics so lets avoid the loop below. - # First set a reasonable default. - lt_cv_sys_max_cmd_len=16384 - # - if test -x /sbin/sysconfig; then - case `/sbin/sysconfig -q proc exec_disable_arg_limit` in - *1*) lt_cv_sys_max_cmd_len=-1 ;; - esac - fi - ;; - sco3.2v5*) - lt_cv_sys_max_cmd_len=102400 - ;; - sysv5* | sco5v6* | sysv4.2uw2*) - kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` - if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` - else - lt_cv_sys_max_cmd_len=32768 - fi - ;; - *) - lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len"; then - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - else - # Make teststring a little bigger before we do anything with it. - # a 1K string should be a reasonable start. - for i in 1 2 3 4 5 6 7 8 ; do - teststring=$teststring$teststring - done - SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} - # 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` \ - = "X$teststring$teststring"; } >/dev/null 2>&1 && - test $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - # Only check the string length outside the loop. - lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` - teststring= - # Add a significant safety factor because C++ compilers can tack on - # massive amounts of additional arguments before passing them to the - # linker. It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` - fi - ;; - esac - -fi - -if test -n $lt_cv_sys_max_cmd_len ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 -$as_echo "$lt_cv_sys_max_cmd_len" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 -$as_echo "none" >&6; } -fi -max_cmd_len=$lt_cv_sys_max_cmd_len - - - - - - -: ${CP="cp -f"} -: ${MV="mv -f"} -: ${RM="rm -f"} - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 -$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } -# Try some XSI features -xsi_shell=no -( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 -$as_echo "$xsi_shell" >&6; } - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 -$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } -lt_shell_append=no -( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ - >/dev/null 2>&1 \ - && lt_shell_append=yes -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 -$as_echo "$lt_shell_append" >&6; } - - -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - lt_unset=unset -else - lt_unset=false -fi - - - - - -# test EBCDIC or ASCII -case `echo X|tr X '\101'` in - A) # ASCII based system - # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr - lt_SP2NL='tr \040 \012' - lt_NL2SP='tr \015\012 \040\040' - ;; - *) # EBCDIC based system - lt_SP2NL='tr \100 \n' - lt_NL2SP='tr \r\n \100\100' - ;; -esac - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 -$as_echo_n "checking how to convert $build file names to $host format... " >&6; } -if ${lt_cv_to_host_file_cmd+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 - ;; - esac - ;; - *-*-cygwin* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin - ;; - esac - ;; - * ) # unhandled hosts (and "normal" native builds) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; -esac - -fi - -to_host_file_cmd=$lt_cv_to_host_file_cmd -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 -$as_echo "$lt_cv_to_host_file_cmd" >&6; } - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 -$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } -if ${lt_cv_to_tool_file_cmd+:} false; then : - $as_echo_n "(cached) " >&6 -else - #assume ordinary cross tools, or native build. -lt_cv_to_tool_file_cmd=func_convert_file_noop -case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 - ;; - esac - ;; -esac - -fi - -to_tool_file_cmd=$lt_cv_to_tool_file_cmd -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 -$as_echo "$lt_cv_to_tool_file_cmd" >&6; } - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 -$as_echo_n "checking for $LD option to reload object files... " >&6; } -if ${lt_cv_ld_reload_flag+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ld_reload_flag='-r' -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 -$as_echo "$lt_cv_ld_reload_flag" >&6; } -reload_flag=$lt_cv_ld_reload_flag -case $reload_flag in -"" | " "*) ;; -*) reload_flag=" $reload_flag" ;; -esac -reload_cmds='$LD$reload_flag -o $output$reload_objs' -case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - if test "$GCC" != yes; then - reload_cmds=false - fi - ;; - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' - else - reload_cmds='$LD$reload_flag -o $output$reload_objs' - fi - ;; -esac - - - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. -set dummy ${ac_tool_prefix}objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_OBJDUMP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OBJDUMP"; then - ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OBJDUMP=$ac_cv_prog_OBJDUMP -if test -n "$OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 -$as_echo "$OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OBJDUMP"; then - ac_ct_OBJDUMP=$OBJDUMP - # Extract the first word of "objdump", so it can be a program name with args. -set dummy objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OBJDUMP"; then - ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP -if test -n "$ac_ct_OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 -$as_echo "$ac_ct_OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OBJDUMP" = x; then - OBJDUMP="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OBJDUMP=$ac_ct_OBJDUMP - fi -else - OBJDUMP="$ac_cv_prog_OBJDUMP" -fi - -test -z "$OBJDUMP" && OBJDUMP=objdump - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 -$as_echo_n "checking how to recognize dependent libraries... " >&6; } -if ${lt_cv_deplibs_check_method+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_file_magic_cmd='$MAGIC_CMD' -lt_cv_file_magic_test_file= -lt_cv_deplibs_check_method='unknown' -# Need to set the preceding variable on all platforms that support -# interlibrary dependencies. -# 'none' -- dependencies not supported. -# `unknown' -- same as none, but documents that we really don't know. -# 'pass_all' -- all dependencies passed with no checks. -# 'test_compile' -- check by making test program. -# 'file_magic [[regex]]' -- check by looking for files in library path -# which responds to the $file_magic_cmd with a given extended regex. -# If you have `file' or equivalent on your system and you're not sure -# whether `pass_all' will *always* work, you probably want this one. - -case $host_os in -aix[4-9]*) - lt_cv_deplibs_check_method=pass_all - ;; - -beos*) - lt_cv_deplibs_check_method=pass_all - ;; - -bsdi[45]*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' - lt_cv_file_magic_cmd='/usr/bin/file -L' - lt_cv_file_magic_test_file=/shlib/libc.so - ;; - -cygwin*) - # func_win32_libid is a shell function defined in ltmain.sh - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - ;; - -mingw* | pw32*) - # Base MSYS/MinGW do not provide the 'file' command needed by - # func_win32_libid shell function, so use a weaker test based on 'objdump', - # unless we find 'file', for example because we are cross-compiling. - # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. - if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else - # Keep this pattern in sync with the one in func_win32_libid. - lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; - -cegcc*) - # use the weaker test based on 'objdump'. See mingw*. - lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - ;; - -darwin* | rhapsody*) - lt_cv_deplibs_check_method=pass_all - ;; - -freebsd* | dragonfly*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - case $host_cpu in - i*86 ) - # Not sure whether the presence of OpenBSD here was a mistake. - # Let's accept both of them until this is cleared up. - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - ;; - esac - else - lt_cv_deplibs_check_method=pass_all - fi - ;; - -haiku*) - lt_cv_deplibs_check_method=pass_all - ;; - -hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file - case $host_cpu in - ia64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so - ;; - hppa*64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' - lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl - ;; - *) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' - lt_cv_file_magic_test_file=/usr/lib/libc.sl - ;; - esac - ;; - -interix[3-9]*) - # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' - ;; - -irix5* | irix6* | nonstopux*) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - lt_cv_deplibs_check_method=pass_all - ;; - -# This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - -netbsd* | netbsdelf*-gnu) - 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 - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' - fi - ;; - -newos6*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; - -*nto* | *qnx*) - lt_cv_deplibs_check_method=pass_all - ;; - -openbsd*) - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -rdos*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.3*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - sequent) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" - lt_cv_file_magic_test_file=/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=pass_all - ;; - pc) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; - -tpf*) - lt_cv_deplibs_check_method=pass_all - ;; -esac - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 -$as_echo "$lt_cv_deplibs_check_method" >&6; } - -file_magic_glob= -want_nocaseglob=no -if test "$build" = "$host"; then - case $host_os in - mingw* | pw32*) - if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then - want_nocaseglob=yes - else - file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` - fi - ;; - esac -fi - -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method -test -z "$deplibs_check_method" && deplibs_check_method=unknown - - - - - - - - - - - - - - - - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_DLLTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DLLTOOL"; then - ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DLLTOOL=$ac_cv_prog_DLLTOOL -if test -n "$DLLTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -$as_echo "$DLLTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_DLLTOOL"; then - ac_ct_DLLTOOL=$DLLTOOL - # Extract the first word of "dlltool", so it can be a program name with args. -set dummy dlltool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DLLTOOL"; then - ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -if test -n "$ac_ct_DLLTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -$as_echo "$ac_ct_DLLTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_DLLTOOL" = x; then - DLLTOOL="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DLLTOOL=$ac_ct_DLLTOOL - fi -else - DLLTOOL="$ac_cv_prog_DLLTOOL" -fi - -test -z "$DLLTOOL" && DLLTOOL=dlltool - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 -$as_echo_n "checking how to associate runtime and link libraries... " >&6; } -if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_sharedlib_from_linklib_cmd='unknown' - -case $host_os in -cygwin* | mingw* | pw32* | cegcc*) - # two different shell functions defined in ltmain.sh - # decide which to use based on capabilities of $DLLTOOL - case `$DLLTOOL --help 2>&1` in - *--identify-strict*) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib - ;; - *) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback - ;; - esac - ;; -*) - # fallback: assume linklib IS sharedlib - lt_cv_sharedlib_from_linklib_cmd="$ECHO" - ;; -esac - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 -$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } -sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO - - - - - - - - -if test -n "$ac_tool_prefix"; then - for ac_prog in ar - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -$as_echo "$AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$AR" && break - done -fi -if test -z "$AR"; then - ac_ct_AR=$AR - for ac_prog in ar -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_AR"; then - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_AR=$ac_cv_prog_ac_ct_AR -if test -n "$ac_ct_AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 -$as_echo "$ac_ct_AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_AR" && break -done - - if test "x$ac_ct_AR" = x; then - AR="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - AR=$ac_ct_AR - fi -fi - -: ${AR=ar} -: ${AR_FLAGS=cru} - - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -$as_echo_n "checking for archiver @FILE support... " >&6; } -if ${lt_cv_ar_at_file+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ar_at_file=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - echo conftest.$ac_objext > conftest.lst - lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 - (eval $lt_ar_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if test "$ac_status" -eq 0; then - # Ensure the archiver fails upon bogus file names. - rm -f conftest.$ac_objext libconftest.a - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 - (eval $lt_ar_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if test "$ac_status" -ne 0; then - lt_cv_ar_at_file=@ - fi - fi - rm -f conftest.* libconftest.a - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -$as_echo "$lt_cv_ar_at_file" >&6; } - -if test "x$lt_cv_ar_at_file" = xno; then - archiver_list_spec= -else - archiver_list_spec=$lt_cv_ar_at_file -fi - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -test -z "$STRIP" && STRIP=: - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -$as_echo "$RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -$as_echo "$ac_ct_RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -else - RANLIB="$ac_cv_prog_RANLIB" -fi - -test -z "$RANLIB" && RANLIB=: - - - - - - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" - ;; - *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" -fi - -case $host_os in - darwin*) - lock_old_archive_extraction=yes ;; - *) - lock_old_archive_extraction=no ;; -esac - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# Check for command to grab the raw symbol name followed by C symbol from nm. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 -$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } -if ${lt_cv_sys_global_symbol_pipe+:} false; then : - $as_echo_n "(cached) " >&6 -else - -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] - -# Character class describing NM global symbol codes. -symcode='[BCDEGRST]' - -# Regexp to match symbols that can be accessed directly from C. -sympat='\([_A-Za-z][_A-Za-z0-9]*\)' - -# Define system-specific variables. -case $host_os in -aix*) - symcode='[BCDT]' - ;; -cygwin* | mingw* | pw32* | cegcc*) - symcode='[ABCDGISTW]' - ;; -hpux*) - if test "$host_cpu" = ia64; then - symcode='[ABCDEGRST]' - fi - ;; -irix* | nonstopux*) - symcode='[BCDEGRST]' - ;; -osf*) - symcode='[BCDEGQRST]' - ;; -solaris*) - symcode='[BDRT]' - ;; -sco3.2v5*) - symcode='[DT]' - ;; -sysv4.2uw2*) - symcode='[DT]' - ;; -sysv5* | sco5v6* | unixware* | OpenUNIX*) - symcode='[ABDT]' - ;; -sysv4) - symcode='[DFNSTU]' - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[ABCDGIRSTW]' ;; -esac - -# Transform an extracted symbol line into a proper C declaration. -# Some systems (esp. on ia64) link data and code symbols differently, -# so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - -# Handle CRLF in mingw tool chain -opt_cr= -case $build_os in -mingw*) - opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# Try without a prefix underscore, then with it. -for ac_symprfx in "" "_"; do - - # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. - symxfrm="\\1 $ac_symprfx\\2 \\2" - - # Write the raw and C identifiers. - if test "$lt_cv_nm_interface" = "MS dumpbin"; then - # Fake it for dumpbin and say T for any non-static function - # and D for any global variable. - # Also find C++ and __fastcall symbols from MSVC++, - # 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};"\ -" {if(hide[section]) next};"\ -" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ -" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ -" s[1]~/^[@?]/{print s[1], s[1]; next};"\ -" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ -" ' prfx=^$ac_symprfx" - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi - lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no - - rm -f conftest* - cat > conftest.$ac_ext <<_LT_EOF -#ifdef __cplusplus -extern "C" { -#endif -char nm_test_var; -void nm_test_func(void); -void nm_test_func(void){} -#ifdef __cplusplus -} -#endif -int main(){nm_test_var='a';nm_test_func();return(0);} -_LT_EOF - - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - # Now try to grab the symbols. - nlist=conftest.nm - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 - (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s "$nlist"; then - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - else - rm -f "$nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -/* DATA imports from DLLs on WIN32 con't be const, because runtime - relocations are performed -- see ld's documentation on pseudo-relocs. */ -# define LT_DLSYM_CONST -#elif defined(__osf__) -/* This system does not cope well with relocations in const data. */ -# define LT_DLSYM_CONST -#else -# define LT_DLSYM_CONST const -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -_LT_EOF - # Now generate the symbol file. - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' - - cat <<_LT_EOF >> conftest.$ac_ext - -/* The mapping between symbol names and symbols. */ -LT_DLSYM_CONST struct { - const char *name; - void *address; -} -lt__PROGRAM__LTX_preloaded_symbols[] = -{ - { "@PROGRAM@", (void *) 0 }, -_LT_EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext - cat <<\_LT_EOF >> conftest.$ac_ext - {0, (void *) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt__PROGRAM__LTX_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif -_LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_globsym_save_LIBS=$LIBS - lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi - LIBS=$lt_globsym_save_LIBS - CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&5 - fi - else - echo "cannot find nm_test_var in $nlist" >&5 - fi - else - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 - fi - else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - fi - rm -rf conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then - break - else - lt_cv_sys_global_symbol_pipe= - fi -done - -fi - -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl= -fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 -$as_echo "failed" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 -$as_echo "ok" >&6; } -fi - -# Response file support. -if test "$lt_cv_nm_interface" = "MS dumpbin"; then - nm_file_list_spec='@' -elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then - nm_file_list_spec='@' -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 -$as_echo_n "checking for sysroot... " >&6; } - -# Check whether --with-sysroot was given. -if test "${with_sysroot+set}" = set; then : - withval=$with_sysroot; -else - with_sysroot=no -fi - - -lt_sysroot= -case ${with_sysroot} in #( - yes) - if test "$GCC" = yes; then - lt_sysroot=`$CC --print-sysroot 2>/dev/null` - fi - ;; #( - /*) - lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` - ;; #( - no|'') - ;; #( - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 -$as_echo "${with_sysroot}" >&6; } - as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 - ;; -esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 -$as_echo "${lt_sysroot:-no}" >&6; } - - - - - -# Check whether --enable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then : - enableval=$enable_libtool_lock; -fi - -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -ia64-*-hpux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `/usr/bin/file conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE="32" - ;; - *ELF-64*) - HPUX_IA64_MODE="64" - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out which ABI we are using. - echo '#line '$LINENO' "configure"' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - if test "$lt_cv_prog_gnu_ld" = yes; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -melf32bsmip" - ;; - *N32*) - LD="${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD="${LD-ld} -melf64bmip" - ;; - esac - else - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - fi - rm -rf conftest* - ;; - -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ -s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `/usr/bin/file conftest.o` in - *32-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_i386_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_i386" - ;; - ppc64-*linux*|powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_x86_64_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - ppc*-*linux*|powerpc*-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*|s390*-*tpf*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -belf" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 -$as_echo_n "checking whether the C compiler needs -belf... " >&6; } -if ${lt_cv_cc_needs_belf+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - lt_cv_cc_needs_belf=yes -else - lt_cv_cc_needs_belf=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 -$as_echo "$lt_cv_cc_needs_belf" >&6; } - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; -*-*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 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; 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 - ;; - *) - if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then - LD="${LD-ld} -64" - fi - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; -esac - -need_locks="$enable_libtool_lock" - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. -set dummy ${ac_tool_prefix}mt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$MANIFEST_TOOL"; then - ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL -if test -n "$MANIFEST_TOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 -$as_echo "$MANIFEST_TOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_MANIFEST_TOOL"; then - ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL - # Extract the first word of "mt", so it can be a program name with args. -set dummy mt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_MANIFEST_TOOL"; then - ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL -if test -n "$ac_ct_MANIFEST_TOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 -$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_MANIFEST_TOOL" = x; then - MANIFEST_TOOL=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL - fi -else - MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" -fi - -test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 -$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } -if ${lt_cv_path_mainfest_tool+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_path_mainfest_tool=no - echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 - $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out - cat conftest.err >&5 - if $GREP 'Manifest Tool' conftest.out > /dev/null; then - lt_cv_path_mainfest_tool=yes - fi - rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 -$as_echo "$lt_cv_path_mainfest_tool" >&6; } -if test "x$lt_cv_path_mainfest_tool" != xyes; then - MANIFEST_TOOL=: -fi - - - - - - - case $host_os in - rhapsody* | darwin*) - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. -set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_DSYMUTIL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DSYMUTIL"; then - ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DSYMUTIL=$ac_cv_prog_DSYMUTIL -if test -n "$DSYMUTIL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 -$as_echo "$DSYMUTIL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_DSYMUTIL"; then - ac_ct_DSYMUTIL=$DSYMUTIL - # Extract the first word of "dsymutil", so it can be a program name with args. -set dummy dsymutil; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DSYMUTIL"; then - ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL -if test -n "$ac_ct_DSYMUTIL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 -$as_echo "$ac_ct_DSYMUTIL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_DSYMUTIL" = x; then - DSYMUTIL=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DSYMUTIL=$ac_ct_DSYMUTIL - fi -else - DSYMUTIL="$ac_cv_prog_DSYMUTIL" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. -set dummy ${ac_tool_prefix}nmedit; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_NMEDIT+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$NMEDIT"; then - ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -NMEDIT=$ac_cv_prog_NMEDIT -if test -n "$NMEDIT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 -$as_echo "$NMEDIT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_NMEDIT"; then - ac_ct_NMEDIT=$NMEDIT - # Extract the first word of "nmedit", so it can be a program name with args. -set dummy nmedit; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_NMEDIT"; then - ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT -if test -n "$ac_ct_NMEDIT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 -$as_echo "$ac_ct_NMEDIT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_NMEDIT" = x; then - NMEDIT=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - NMEDIT=$ac_ct_NMEDIT - fi -else - NMEDIT="$ac_cv_prog_NMEDIT" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. -set dummy ${ac_tool_prefix}lipo; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_LIPO+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$LIPO"; then - ac_cv_prog_LIPO="$LIPO" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -LIPO=$ac_cv_prog_LIPO -if test -n "$LIPO"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 -$as_echo "$LIPO" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_LIPO"; then - ac_ct_LIPO=$LIPO - # Extract the first word of "lipo", so it can be a program name with args. -set dummy lipo; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_LIPO+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_LIPO"; then - ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO -if test -n "$ac_ct_LIPO"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 -$as_echo "$ac_ct_LIPO" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_LIPO" = x; then - LIPO=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - LIPO=$ac_ct_LIPO - fi -else - LIPO="$ac_cv_prog_LIPO" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. -set dummy ${ac_tool_prefix}otool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_OTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OTOOL"; then - ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OTOOL=$ac_cv_prog_OTOOL -if test -n "$OTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 -$as_echo "$OTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OTOOL"; then - ac_ct_OTOOL=$OTOOL - # Extract the first word of "otool", so it can be a program name with args. -set dummy otool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OTOOL"; then - ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL -if test -n "$ac_ct_OTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 -$as_echo "$ac_ct_OTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OTOOL" = x; then - OTOOL=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OTOOL=$ac_ct_OTOOL - fi -else - OTOOL="$ac_cv_prog_OTOOL" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. -set dummy ${ac_tool_prefix}otool64; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_OTOOL64+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OTOOL64"; then - ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OTOOL64=$ac_cv_prog_OTOOL64 -if test -n "$OTOOL64"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 -$as_echo "$OTOOL64" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OTOOL64"; then - ac_ct_OTOOL64=$OTOOL64 - # Extract the first word of "otool64", so it can be a program name with args. -set dummy otool64; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OTOOL64"; then - ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -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 - 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 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 -if test -n "$ac_ct_OTOOL64"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 -$as_echo "$ac_ct_OTOOL64" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OTOOL64" = x; then - OTOOL64=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OTOOL64=$ac_ct_OTOOL64 - fi -else - OTOOL64="$ac_cv_prog_OTOOL64" -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 -$as_echo_n "checking for -single_module linker flag... " >&6; } -if ${lt_cv_apple_cc_single_mod+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_apple_cc_single_mod=no - if test -z "${LT_MULTI_MODULE}"; then - # By default we will add the -single_module flag. You can override - # by either setting the environment variable LT_MULTI_MODULE - # non-empty at configure time, or by adding -multi_module to the - # link flags. - rm -rf libconftest.dylib* - echo "int foo(void){return 1;}" > conftest.c - echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ --dynamiclib -Wl,-single_module conftest.c" >&5 - $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 - lt_cv_apple_cc_single_mod=yes - else - cat conftest.err >&5 - fi - rm -rf libconftest.dylib* - rm -f conftest.* - fi -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 : - $as_echo_n "(cached) " >&6 -else - lt_cv_ld_exported_symbols_list=no - save_LDFLAGS=$LDFLAGS - echo "_main" > conftest.sym - LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - lt_cv_ld_exported_symbols_list=yes -else - lt_cv_ld_exported_symbols_list=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$save_LDFLAGS" - -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 : - $as_echo_n "(cached) " >&6 -else - lt_cv_ld_force_load=no - cat > conftest.c << _LT_EOF -int forced_loaded() { return 2;} -_LT_EOF - echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 - echo "$RANLIB libconftest.a" >&5 - $RANLIB libconftest.a 2>&5 - cat > conftest.c << _LT_EOF -int main() { return 0;} -_LT_EOF - echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 - $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err - _lt_result=$? - if test -s conftest.err && $GREP force_load conftest.err; then - cat conftest.err >&5 - elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then - lt_cv_ld_force_load=yes - else - cat conftest.err >&5 - fi - rm -f conftest.err libconftest.a conftest conftest.c - rm -rf conftest.dSYM - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 -$as_echo "$lt_cv_ld_force_load" >&6; } - case $host_os in - rhapsody* | darwin1.[012]) - _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; - darwin1.*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - darwin*) # darwin 5.x on - # if running on 10.5 or later, the deployment target defaults - # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[91]*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - 10.[012]*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - 10.*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - esac - ;; - esac - if test "$lt_cv_apple_cc_single_mod" = "yes"; then - _lt_dar_single_mod='$single_module' - fi - if test "$lt_cv_ld_exported_symbols_list" = "yes"; then - _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' - else - _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then - _lt_dsymutil='~$DSYMUTIL $lib || :' - else - _lt_dsymutil= - fi - ;; - esac - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - # <limits.h> exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <ac_nonexistent.h> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - # <limits.h> exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <ac_nonexistent.h> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <stdlib.h> -#include <stdarg.h> -#include <string.h> -#include <float.h> - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <string.h> - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <stdlib.h> - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <ctype.h> -#include <stdlib.h> -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "#define STDC_HEADERS 1" >>confdefs.h - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -for ac_header in dlfcn.h -do : - ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default -" -if test "x$ac_cv_header_dlfcn_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DLFCN_H 1 -_ACEOF - -fi - -done - - - - - -# Set options - - - - enable_dlopen=no - - - enable_win32_dll=no - - - # Check whether --enable-shared was given. -if test "${enable_shared+set}" = set; then : - enableval=$enable_shared; p=${PACKAGE-default} - case $enableval in - yes) enable_shared=yes ;; - no) enable_shared=no ;; - *) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_shared=yes -fi - - - - - - - - - - - -# Check whether --with-pic was given. -if test "${with_pic+set}" = set; then : - withval=$with_pic; lt_p=${PACKAGE-default} - case $withval in - yes|no) pic_mode=$withval ;; - *) - pic_mode=default - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for lt_pkg in $withval; do - IFS="$lt_save_ifs" - if test "X$lt_pkg" = "X$lt_p"; then - pic_mode=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - pic_mode=default -fi - - -test -z "$pic_mode" && pic_mode=default - - - - - - - - # Check whether --enable-fast-install was given. -if test "${enable_fast_install+set}" = set; then : - enableval=$enable_fast_install; p=${PACKAGE-default} - case $enableval in - yes) enable_fast_install=yes ;; - no) enable_fast_install=no ;; - *) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_fast_install=yes -fi - - - - - - - - - - - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ltmain" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -test -z "$LN_S" && LN_S="ln -s" - - - - - - - - - - - - - - -if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 -$as_echo_n "checking for objdir... " >&6; } -if ${lt_cv_objdir+:} false; then : - $as_echo_n "(cached) " >&6 -else - rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=_libs -fi -rmdir .libs 2>/dev/null -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 -$as_echo "$lt_cv_objdir" >&6; } -objdir=$lt_cv_objdir - - - - - -cat >>confdefs.h <<_ACEOF -#define LT_OBJDIR "$lt_cv_objdir/" -_ACEOF - - - - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Global variables: -ofile=libtool -can_build_shared=yes - -# All known linkers require a `.a' archive for static linking (except MSVC, -# which needs '.lib'). -libext=a - -with_gnu_ld="$lt_cv_prog_gnu_ld" - -old_CC="$CC" -old_CFLAGS="$CFLAGS" - -# Set sane defaults for various variables -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS -test -z "$LD" && LD=ld -test -z "$ac_objext" && ac_objext=o - -for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` - - -# Only perform the check for file, if the check method requires it -test -z "$MAGIC_CMD" && MAGIC_CMD=file -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 -$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } -if ${lt_cv_path_MAGIC_CMD+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/${ac_tool_prefix}file; then - lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<_LT_EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -_LT_EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac -fi - -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 -$as_echo "$MAGIC_CMD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - - -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 -$as_echo_n "checking for file... " >&6; } -if ${lt_cv_path_MAGIC_CMD+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/file; then - lt_cv_path_MAGIC_CMD="$ac_dir/file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<_LT_EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -_LT_EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac -fi - -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 -$as_echo "$MAGIC_CMD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - else - MAGIC_CMD=: - fi -fi - - fi - ;; -esac - -# Use C for the default configuration in the libtool script - -lt_save_CC="$CC" -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -# Source file extension for C test sources. -ac_ext=c - -# Object file extension for compiled C test sources. -objext=o -objext=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}' - - - - - - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - -# Save the default compiler, since it gets overwritten when the other -# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. -compiler_DEFAULT=$CC - -# save warnings/boilerplate of simple test code -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$RM conftest* - -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$RM -r conftest* - - -if test -n "$compiler"; then - -lt_prog_compiler_no_builtin_flag= - -if test "$GCC" = yes; then - case $cc_basename in - nvcc*) - lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; - *) - lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; - esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 -$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } -if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_rtti_exceptions=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="-fno-rtti -fno-exceptions" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_rtti_exceptions=yes - fi - fi - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } - -if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then - lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" -else - : -fi - -fi - - - - - - - lt_prog_compiler_wl= -lt_prog_compiler_pic= -lt_prog_compiler_static= - - - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_static='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - lt_prog_compiler_pic='-fPIC' - ;; - m68k) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' - ;; - esac - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - lt_prog_compiler_pic='-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic='-fno-common' - ;; - - haiku*) - # PIC is the default for Haiku. - # The "-static" flag exists, but is broken. - lt_prog_compiler_static= - ;; - - hpux*) - # PIC is the default for 64-bit PA HP-UX, but not for 32-bit - # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag - # sets the default TLS model and affects inlining. - case $host_cpu in - hppa*64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='-fPIC' - ;; - esac - ;; - - interix[3-9]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - lt_prog_compiler_can_build_shared=no - enable_shared=no - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - lt_prog_compiler_pic='-fPIC -shared' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic=-Kconform_pic - fi - ;; - - *) - lt_prog_compiler_pic='-fPIC' - ;; - esac - - 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 - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - lt_prog_compiler_wl='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - else - lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic='-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) - lt_prog_compiler_wl='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - lt_prog_compiler_static='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl='-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static='-non_shared' - ;; - - linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - case $cc_basename in - # old Intel for x86_64 which still supported -KPIC. - ecc*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-static' - ;; - # icc used to be incompatible with GCC. - # ICC 10 doesn't accept -KPIC any more. - icc* | ifort*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fPIC' - lt_prog_compiler_static='-static' - ;; - # Lahey Fortran 8.1. - lf95*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='--shared' - lt_prog_compiler_static='--static' - ;; - nagfor*) - # NAG Fortran compiler - lt_prog_compiler_wl='-Wl,-Wl,,' - lt_prog_compiler_pic='-PIC' - lt_prog_compiler_static='-Bstatic' - ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fpic' - lt_prog_compiler_static='-Bstatic' - ;; - ccc*) - lt_prog_compiler_wl='-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - xl* | bgxl* | bgf* | mpixl*) - # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-qpic' - lt_prog_compiler_static='-qstaticlink' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) - # 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 - ;; - - newsos6) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - lt_prog_compiler_pic='-fPIC -shared' - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl='-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - - rdos*) - lt_prog_compiler_static='-non_shared' - ;; - - solaris*) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - case $cc_basename in - f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - lt_prog_compiler_wl='-Qoption ld ';; - *) - lt_prog_compiler_wl='-Wl,';; - esac - ;; - - sunos4*) - lt_prog_compiler_wl='-Qoption ld ' - lt_prog_compiler_pic='-PIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - lt_prog_compiler_pic='-Kconform_pic' - lt_prog_compiler_static='-Bstatic' - fi - ;; - - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - unicos*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_can_build_shared=no - ;; - - uts4*) - lt_prog_compiler_pic='-pic' - lt_prog_compiler_static='-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared=no - ;; - esac - fi - -case $host_os in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic= - ;; - *) - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; -esac - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -$as_echo_n "checking for $compiler option to produce PIC... " >&6; } -if ${lt_cv_prog_compiler_pic+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_pic=$lt_prog_compiler_pic -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 -$as_echo "$lt_cv_prog_compiler_pic" >&6; } -lt_prog_compiler_pic=$lt_cv_prog_compiler_pic - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 -$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } -if ${lt_cv_prog_compiler_pic_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_pic_works=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic -DPIC" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_pic_works=yes - fi - fi - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 -$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } - -if test x"$lt_cv_prog_compiler_pic_works" = xyes; then - case $lt_prog_compiler_pic in - "" | " "*) ;; - *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; - esac -else - lt_prog_compiler_pic= - lt_prog_compiler_can_build_shared=no -fi - -fi - - - - - - - - - - - -# -# Check to make sure the static flag actually works. -# -wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } -if ${lt_cv_prog_compiler_static_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_static_works=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $lt_tmp_static_flag" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_static_works=yes - fi - else - lt_cv_prog_compiler_static_works=yes - fi - fi - $RM -r conftest* - LDFLAGS="$save_LDFLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 -$as_echo "$lt_cv_prog_compiler_static_works" >&6; } - -if test x"$lt_cv_prog_compiler_static_works" = xyes; then - : -else - lt_prog_compiler_static= -fi - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 -$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if ${lt_cv_prog_compiler_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_c_o=no - $RM -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o=yes - fi - fi - chmod u+w . 2>&5 - $RM conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files - $RM out/* && rmdir out - cd .. - $RM -r conftest - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 -$as_echo "$lt_cv_prog_compiler_c_o" >&6; } - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 -$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if ${lt_cv_prog_compiler_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_c_o=no - $RM -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o=yes - fi - fi - chmod u+w . 2>&5 - $RM conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files - $RM out/* && rmdir out - cd .. - $RM -r conftest - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 -$as_echo "$lt_cv_prog_compiler_c_o" >&6; } - - - - -hard_links="nottested" -if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 -$as_echo_n "checking if we can lock with hard links... " >&6; } - hard_links=yes - $RM conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 -$as_echo "$hard_links" >&6; } - if test "$hard_links" = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} - need_locks=warn - fi -else - need_locks=no -fi - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } - - runpath_var= - allow_undefined_flag= - always_export_symbols=no - archive_cmds= - archive_expsym_cmds= - compiler_needs_object=no - enable_shared_with_static_runtimes=no - export_dynamic_flag_spec= - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - hardcode_automatic=no - hardcode_direct=no - hardcode_direct_absolute=no - hardcode_libdir_flag_spec= - hardcode_libdir_separator= - hardcode_minus_L=no - hardcode_shlibpath_var=unsupported - inherit_rpath=no - link_all_deplibs=unknown - module_cmds= - module_expsym_cmds= - old_archive_from_new_cmds= - old_archive_from_expsyms_cmds= - thread_safe_flag_spec= - whole_archive_flag_spec= - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - include_expsyms= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - # Exclude shared library initialization/finalization symbols. - extract_expsyms_cmds= - - case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; - linux* | k*bsd*-gnu | gnu*) - link_all_deplibs=no - ;; - esac - - ld_shlibs=yes - - # On some targets, GNU ld is compatible enough with the native linker - # that we're better off using the native interface for both. - lt_use_gnu_ld_interface=no - if test "$with_gnu_ld" = yes; then - case $host_os in - aix*) - # The AIX port of GNU ld has always aspired to compatibility - # with the native linker. However, as the warning in the GNU ld - # block says, versions before 2.19.5* couldn't really create working - # shared libraries, regardless of the interface used. - case `$LD -v 2>&1` in - *\ \(GNU\ Binutils\)\ 2.19.5*) ;; - *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; - *\ \(GNU\ Binutils\)\ [3-9]*) ;; - *) - lt_use_gnu_ld_interface=yes - ;; - esac - ;; - *) - lt_use_gnu_ld_interface=yes - ;; - esac - fi - - if test "$lt_use_gnu_ld_interface" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - export_dynamic_flag_spec='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec= - fi - supports_anon_versioning=no - case `$LD -v 2>&1` in - *GNU\ gold*) supports_anon_versioning=yes ;; - *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - - # See if GNU ld supports shared libraries. - case $host_os in - aix[3-9]*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: the GNU linker, at least up to release 2.19, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to install binutils -*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. -*** You will then need to restart the configuration process. - -_LT_EOF - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='' - ;; - m68k) - archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - esac - ;; - - beos*) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag=unsupported - # Joseph Beckenbach <jrb3@best.com> says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - ld_shlibs=no - fi - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec='-L$libdir' - export_dynamic_flag_spec='${wl}--export-all-symbols' - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' - exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - ld_shlibs=no - fi - ;; - - haiku*) - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - link_all_deplibs=yes - ;; - - interix[3-9]*) - hardcode_direct=no - hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - - gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) - tmp_diet=no - if test "$host_os" = linux-dietlibc; then - case $cc_basename in - diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) - esac - fi - if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test "$tmp_diet" = no - then - tmp_addflag=' $pic_flag' - tmp_sharedflag='-shared' - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group f77 and f90 compilers - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag -Mnomain' ;; - ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 - tmp_addflag=' -i_dynamic' ;; - efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 - tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler - tmp_addflag=' -nofor_main' ;; - lf95*) # Lahey Fortran 8.1 - whole_archive_flag_spec= - tmp_sharedflag='--shared' ;; - xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) - tmp_sharedflag='-qmkshrobj' - tmp_addflag= ;; - nvcc*) # Cuda Compiler Driver 2.2 - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - compiler_needs_object=yes - ;; - esac - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C 5.9 - whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - compiler_needs_object=yes - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; - esac - archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - - if test "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - - case $cc_basename in - 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' - 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~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac - else - ld_shlibs=no - fi - ;; - - netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris*) - if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - ;; - *) - # For security reasons, it is highly recommended that you always - # use absolute paths for naming shared libraries, and exclude the - # DT_RUNPATH tag from executables and libraries. But doing so - # requires that you compile everything twice, which is a pain. - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - esac - ;; - - sunos4*) - archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - esac - - if test "$ld_shlibs" = no; then - runpath_var= - hardcode_libdir_flag_spec= - export_dynamic_flag_spec= - whole_archive_flag_spec= - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - allow_undefined_flag=unsupported - always_export_symbols=yes - archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L=yes - if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi - ;; - - aix[4-9]*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - # Also, AIX nm treats weak defined symbols like other global - # defined symbols, whereas GNU nm marks them as "W". - if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds='' - hardcode_direct=yes - hardcode_direct_absolute=yes - hardcode_libdir_separator=':' - link_all_deplibs=yes - file_list_spec='${wl}-f,' - - if test "$GCC" = yes; then - case $host_os in aix4.[012]|aix4.[012].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && - strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - hardcode_direct=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L=yes - hardcode_libdir_flag_spec='-L$libdir' - hardcode_libdir_separator= - fi - ;; - esac - shared_flag='-shared' - 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 - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - export_dynamic_flag_spec='${wl}-bexpall' - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - always_export_symbols=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. - if test "${lt_cv_aix_libpath+set}" = set; then - aix_libpath=$lt_cv_aix_libpath -else - if ${lt_cv_aix_libpath_+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\([^ ]*\) *$/\1/ - p - } - }' - lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - # Check for a 64-bit object if we didn't find anything. - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - fi -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_="/usr/lib:/lib" - fi - -fi - - aix_libpath=$lt_cv_aix_libpath_ -fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' - allow_undefined_flag="-z nodefs" - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an - # empty executable. - if test "${lt_cv_aix_libpath+set}" = set; then - aix_libpath=$lt_cv_aix_libpath -else - if ${lt_cv_aix_libpath_+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\([^ ]*\) *$/\1/ - p - } - }' - lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - # Check for a 64-bit object if we didn't find anything. - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - fi -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_="/usr/lib:/lib" - fi - -fi - - aix_libpath=$lt_cv_aix_libpath_ -fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - no_undefined_flag=' ${wl}-bernotok' - allow_undefined_flag=' ${wl}-berok' - if test "$with_gnu_ld" = yes; then - # We only use this code for GNU lds that support --whole-archive. - whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - else - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec='$convenience' - fi - archive_cmds_need_lc=yes - # This is similar to how AIX traditionally builds its shared libraries. - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='' - ;; - m68k) - archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - esac - ;; - - bsdi[45]*) - export_dynamic_flag_spec=-rdynamic - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - case $cc_basename in - cl*) - # Native MSVC - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - always_export_symbols=yes - file_list_spec='@' - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' - archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; - else - sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; - fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ - linknames=' - # 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' - postlink_cmds='lt_outputfile="@OUTPUT@"~ - lt_tool_outputfile="@TOOL_OUTPUT@"~ - case $lt_outputfile in - *.exe|*.EXE) ;; - *) - lt_outputfile="$lt_outputfile.exe" - lt_tool_outputfile="$lt_tool_outputfile.exe" - ;; - esac~ - if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then - $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; - $RM "$lt_outputfile.manifest"; - fi' - ;; - *) - # Assume MSVC wrapper - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_from_new_cmds='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' - enable_shared_with_static_runtimes=yes - ;; - esac - ;; - - darwin* | rhapsody*) - - - archive_cmds_need_lc=no - hardcode_direct=no - hardcode_automatic=yes - 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 - link_all_deplibs=yes - allow_undefined_flag="$_lt_dar_allow_undefined" - case $cc_basename in - ifort*) _lt_dar_can_shared=yes ;; - *) _lt_dar_can_shared=$GCC ;; - esac - if test "$_lt_dar_can_shared" = "yes"; then - output_verbose_link_cmd=func_echo_all - archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" - module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" - archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" - module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" - - else - ld_shlibs=no - fi - - ;; - - dgux*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=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 - # extra space). - freebsd2.2*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2.*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - hpux9*) - if test "$GCC" = yes; then - archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - export_dynamic_flag_spec='${wl}-E' - ;; - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then - archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - hardcode_direct_absolute=yes - export_dynamic_flag_spec='${wl}-E' - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - fi - ;; - - hpux11*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then - case $host_cpu in - hppa*64*) - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case $host_cpu in - hppa*64*) - archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - - # Older versions of the 11.00 compiler do not understand -b yet - # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 -$as_echo_n "checking if $CC understands -b... " >&6; } -if ${lt_cv_prog_compiler__b+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler__b=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -b" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler__b=yes - fi - else - lt_cv_prog_compiler__b=yes - fi - fi - $RM -r conftest* - LDFLAGS="$save_LDFLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 -$as_echo "$lt_cv_prog_compiler__b" >&6; } - -if test x"$lt_cv_prog_compiler__b" = xyes; then - archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' -fi - - ;; - esac - fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - - case $host_cpu in - hppa*64*|ia64*) - hardcode_direct=no - hardcode_shlibpath_var=no - ;; - *) - hardcode_direct=yes - hardcode_direct_absolute=yes - export_dynamic_flag_spec='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. - # This should be the same for all languages, so no per-tag cache variable. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 -$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } -if ${lt_cv_irix_exported_symbol+:} false; then : - $as_echo_n "(cached) " >&6 -else - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int foo (void) { return 0; } -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - lt_cv_irix_exported_symbol=yes -else - lt_cv_irix_exported_symbol=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$save_LDFLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 -$as_echo "$lt_cv_irix_exported_symbol" >&6; } - if test "$lt_cv_irix_exported_symbol" = yes; then - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' - fi - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' - fi - archive_cmds_need_lc='no' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - inherit_rpath=yes - link_all_deplibs=yes - ;; - - netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - newsos6) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_shlibpath_var=no - ;; - - *nto* | *qnx*) - ;; - - openbsd*) - if test -f /usr/libexec/ld.so; then - hardcode_direct=yes - hardcode_shlibpath_var=no - hardcode_direct_absolute=yes - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' - else - case $host_os in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-R$libdir' - ;; - *) - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - esac - fi - else - ld_shlibs=no - fi - ;; - - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - allow_undefined_flag=unsupported - archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - fi - archive_cmds_need_lc='no' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ - $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' - - # Both c and cxx compiler support -rpath directly - hardcode_libdir_flag_spec='-rpath $libdir' - fi - archive_cmds_need_lc='no' - hardcode_libdir_separator=: - ;; - - solaris*) - no_undefined_flag=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' - archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) - wlarc='' - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' - ;; - *) - wlarc='${wl}' - archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - ;; - esac - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_shlibpath_var=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', - # but is careful enough not to reorder. - # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then - whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - else - whole_archive_flag_spec='-z allextract$convenience -z defaultextract' - fi - ;; - esac - link_all_deplibs=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - sysv4) - case $host_vendor in - sni) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' - reload_cmds='$CC -r -o $output$reload_objs' - hardcode_direct=no - ;; - motorola) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - ;; - - sysv4.3*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - export_dynamic_flag_spec='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs=yes - fi - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - no_undefined_flag='${wl}-z,text' - archive_cmds_need_lc=no - hardcode_shlibpath_var=no - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - no_undefined_flag='${wl}-z,text' - allow_undefined_flag='${wl}-z,nodefs' - archive_cmds_need_lc=no - hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='${wl}-R,$libdir' - hardcode_libdir_separator=':' - link_all_deplibs=yes - export_dynamic_flag_spec='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - uts4*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - *) - ld_shlibs=no - ;; - esac - - if test x$host_vendor = xsni; then - case $host in - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - export_dynamic_flag_spec='${wl}-Blargedynsym' - ;; - esac - fi - fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 -$as_echo "$ld_shlibs" >&6; } -test "$ld_shlibs" = no && can_build_shared=no - -with_gnu_ld=$with_gnu_ld - - - - - - - - - - - - - - - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $archive_cmds in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 -$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } -if ${lt_cv_archive_cmds_need_lc+:} false; then : - $as_echo_n "(cached) " >&6 -else - $RM conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl - pic_flag=$lt_prog_compiler_pic - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag - allow_undefined_flag= - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 - (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - then - lt_cv_archive_cmds_need_lc=no - else - lt_cv_archive_cmds_need_lc=yes - fi - allow_undefined_flag=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 -$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } - archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc - ;; - esac - fi - ;; -esac - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 -$as_echo_n "checking dynamic linker characteristics... " >&6; } - -if test "$GCC" = yes; then - case $host_os in - darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; - *) lt_awk_arg="/^libraries:/" ;; - esac - case $host_os in - mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; - *) lt_sed_strip_eq="s,=/,/,g" ;; - esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` - case $lt_search_path_spec in - *\;*) - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` - ;; - *) - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` - ;; - esac - # Ok, now we have the path, separated by spaces, we can step through it - # and add multilib dir if necessary. - lt_tmp_lt_search_path_spec= - lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` - for lt_sys_path in $lt_search_path_spec; do - if test -d "$lt_sys_path/$lt_multi_os_dir"; then - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" - else - test -d "$lt_sys_path" && \ - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" - fi - done - lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' -BEGIN {RS=" "; FS="/|\n";} { - lt_foo=""; - lt_count=0; - for (lt_i = NF; lt_i > 0; lt_i--) { - if ($lt_i != "" && $lt_i != ".") { - if ($lt_i == "..") { - lt_count++; - } else { - if (lt_count == 0) { - lt_foo="/" $lt_i lt_foo; - } else { - lt_count--; - } - } - } - } - if (lt_foo != "") { lt_freq[lt_foo]++; } - if (lt_freq[lt_foo] == 1) { print lt_foo; } -}'` - # AWK program above erroneously prepends '/' to C:/dos/paths - # for these hosts. - case $host_os in - mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ - $SED 's,/\([A-Za-z]:\),\1,g'` ;; - esac - sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix[4-9]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib<name>.so - # instead of lib<name>.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - case $host_cpu in - powerpc) - # Since July 2007 AmigaOS4 officially supports .so libraries. - # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - ;; - m68k) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - esac - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[45]*) - version_type=linux # correct to gnu/linux during the next big refactor - 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' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32* | cegcc*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$cc_basename in - yes,*) - # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname~ - if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then - eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; - fi' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" - ;; - mingw* | cegcc*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac - dynamic_linker='Win32 ld.exe' - ;; - - *,cl*) - # Native MSVC - libname_spec='$name' - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - library_names_spec='${libname}.dll.lib' - - case $build_os in - mingw*) - sys_lib_search_path_spec= - lt_save_ifs=$IFS - IFS=';' - for lt_path in $LIB - do - IFS=$lt_save_ifs - # Let DOS variable expansion print the short 8.3 style file name. - lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` - sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" - done - IFS=$lt_save_ifs - # Convert to MSYS style. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` - ;; - cygwin*) - # Convert to unix form, then to dos form, then back to unix form - # but this time dos style (no spaces!) so that the unix form looks - # like /cygdrive/c/PROGRA~1:/cygdr... - sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` - sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` - sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - ;; - *) - sys_lib_search_path_spec="$LIB" - if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - # FIXME: find the short name or the path components, as spaces are - # common. (e.g. "Program Files" -> "PROGRA~1") - ;; - esac - - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - dynamic_linker='Win32 link.exe' - ;; - - *) - # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' - dynamic_linker='Win32 ld.exe' - ;; - esac - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' - - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux # correct to gnu/linux during the next big refactor - 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 - ;; - -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[23].*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2.*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[01]* | freebsdelf3.[01]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ - freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - esac - ;; - -haiku*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - dynamic_linker="$host_os runtime_loader" - 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=LIBRARY_PATH - shlibpath_overrides_runpath=yes - sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case $host_cpu in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555, ... - postinstall_cmds='chmod 555 $lib' - # or fails outright, so override atomically: - install_override_mode=555 - ;; - -interix[3-9]*) - version_type=linux # correct to gnu/linux during the next big refactor - 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' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - 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 - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - version_type=linux # correct to gnu/linux during the next big refactor - 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' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - - # Some binutils ld are patched to set DT_RUNPATH - if ${lt_cv_shlibpath_overrides_runpath+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_shlibpath_overrides_runpath=no - save_LDFLAGS=$LDFLAGS - save_libdir=$libdir - eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ - LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : - lt_cv_shlibpath_overrides_runpath=yes -fi -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$save_LDFLAGS - libdir=$save_libdir - -fi - - shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath - - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - 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 - need_version=no - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux # correct to gnu/linux during the next big refactor - 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 - ;; - -*nto* | *qnx*) - version_type=qnx - 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='ldqnx.so' - ;; - -openbsd*) - version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -rdos*) - dynamic_linker=no - ;; - -solaris*) - version_type=linux # correct to gnu/linux during the next big refactor - 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=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.3*) - version_type=linux # correct to gnu/linux during the next big refactor - 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 - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux # correct to gnu/linux during the next big refactor - 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 - fi - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -tpf*) - # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux # correct to gnu/linux during the next big refactor - 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 - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -uts4*) - version_type=linux # correct to gnu/linux during the next big refactor - 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 - ;; - -*) - dynamic_linker=no - ;; -esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 -$as_echo "$dynamic_linker" >&6; } -test "$dynamic_linker" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" -fi -if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 -$as_echo_n "checking how to hardcode library paths into programs... " >&6; } -hardcode_action= -if test -n "$hardcode_libdir_flag_spec" || - test -n "$runpath_var" || - test "X$hardcode_automatic" = "Xyes" ; then - - # We can hardcode non-existent directories. - if test "$hardcode_direct" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && - test "$hardcode_minus_L" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action=unsupported -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 -$as_echo "$hardcode_action" >&6; } - -if test "$hardcode_action" = relink || - test "$inherit_rpath" = yes; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - - - - - - - if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32* | cegcc*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if ${ac_cv_lib_dl_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - -fi - - ;; - - *) - ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" -if test "x$ac_cv_func_shl_load" = xyes; then : - lt_cv_dlopen="shl_load" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 -$as_echo_n "checking for shl_load in -ldld... " >&6; } -if ${ac_cv_lib_dld_shl_load+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char shl_load (); -int -main () -{ -return shl_load (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dld_shl_load=yes -else - ac_cv_lib_dld_shl_load=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 -$as_echo "$ac_cv_lib_dld_shl_load" >&6; } -if test "x$ac_cv_lib_dld_shl_load" = xyes; then : - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" -else - ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" -if test "x$ac_cv_func_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if ${ac_cv_lib_dl_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 -$as_echo_n "checking for dlopen in -lsvld... " >&6; } -if ${ac_cv_lib_svld_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsvld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_svld_dlopen=yes -else - ac_cv_lib_svld_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 -$as_echo "$ac_cv_lib_svld_dlopen" >&6; } -if test "x$ac_cv_lib_svld_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 -$as_echo_n "checking for dld_link in -ldld... " >&6; } -if ${ac_cv_lib_dld_dld_link+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dld_link (); -int -main () -{ -return dld_link (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dld_dld_link=yes -else - ac_cv_lib_dld_dld_link=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 -$as_echo "$ac_cv_lib_dld_dld_link" >&6; } -if test "x$ac_cv_lib_dld_dld_link" = xyes; then : - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" -fi - - -fi - - -fi - - -fi - - -fi - - -fi - - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 -$as_echo_n "checking whether a program can dlopen itself... " >&6; } -if ${lt_cv_dlopen_self+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -#line $LINENO "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include <dlfcn.h> -#endif - -#include <stdio.h> - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -/* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ -#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) -int fnord () __attribute__((visibility("default"))); -#endif - -int fnord () { return 42; } -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else - { - if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - else puts (dlerror ()); - } - /* dlclose (self); */ - } - else - puts (dlerror ()); - - return status; -} -_LT_EOF - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) >&5 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self=no - fi -fi -rm -fr conftest* - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 -$as_echo "$lt_cv_dlopen_self" >&6; } - - if test "x$lt_cv_dlopen_self" = xyes; then - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 -$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } -if ${lt_cv_dlopen_self_static+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self_static=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -#line $LINENO "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include <dlfcn.h> -#endif - -#include <stdio.h> - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -/* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ -#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) -int fnord () __attribute__((visibility("default"))); -#endif - -int fnord () { return 42; } -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else - { - if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - else puts (dlerror ()); - } - /* dlclose (self); */ - } - else - puts (dlerror ()); - - return status; -} -_LT_EOF - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) >&5 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self_static=no - fi -fi -rm -fr conftest* - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 -$as_echo "$lt_cv_dlopen_self_static" >&6; } - fi - - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi - - - - - - - - - - - - - - - - - -striplib= -old_striplib= -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 -$as_echo_n "checking whether stripping libraries is possible... " >&6; } -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - old_striplib="$STRIP -S" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - esac -fi - - - - - - - - - - - - - # Report which library types will actually be built - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 -$as_echo_n "checking if libtool supports shared libraries... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 -$as_echo "$can_build_shared" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 -$as_echo_n "checking whether to build shared libraries... " >&6; } - test "$can_build_shared" = "no" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - - aix[4-9]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 -$as_echo "$enable_shared" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 -$as_echo_n "checking whether to build static libraries... " >&6; } - # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 -$as_echo "$enable_static" >&6; } - - - - -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -CC="$lt_save_CC" - - - - - - - - - - - - - - - - ac_config_commands="$ac_config_commands libtool" - - - - -# Only expand once: - - - -# Check whether --enable-optimization was given. -if test "${enable_optimization+set}" = set; then : - enableval=$enable_optimization; - if (test "${enableval}" = "no"); then - CFLAGS="$CFLAGS -O0 -U_FORTIFY_SOURCE" - fi - -fi - - -# Check whether --enable-debug was given. -if test "${enable_debug+set}" = set; then : - enableval=$enable_debug; - if (test "${enableval}" = "yes" && - test "${ac_cv_prog_cc_g}" = "yes"); then - CFLAGS="$CFLAGS -g" - fi - -fi - - -# Check whether --enable-pie was given. -if test "${enable_pie+set}" = set; then : - enableval=$enable_pie; - if (test "${enableval}" = "yes" && - test "${ac_cv_prog_cc_pie}" = "yes"); then - CFLAGS="$CFLAGS -fPIE" - LDFLAGS="$LDFLAGS -pie" - fi - -fi - - -# Check whether --enable-hh2serial-gps was given. -if test "${enable_hh2serial_gps+set}" = set; then : - enableval=$enable_hh2serial_gps; enable_hh2serial_gps=${enableval} -else - enable_hh2serial_gps="no" -fi - - if test "${enable_hh2serial_gps}" != "no"; then - HH2SERIAL_GPS_TRUE= - HH2SERIAL_GPS_FALSE='#' -else - HH2SERIAL_GPS_TRUE='#' - HH2SERIAL_GPS_FALSE= -fi - - if test "${enable_hh2serial_gps}" = "builtin"; then - HH2SERIAL_GPS_BUILTIN_TRUE= - HH2SERIAL_GPS_BUILTIN_FALSE='#' -else - HH2SERIAL_GPS_BUILTIN_TRUE='#' - HH2SERIAL_GPS_BUILTIN_FALSE= -fi - - - -# Check whether --with-openconnect was given. -if test "${with_openconnect+set}" = set; then : - withval=$with_openconnect; path_openconnect=${withval} -fi - - -# Check whether --enable-openconnect was given. -if test "${enable_openconnect+set}" = set; then : - enableval=$enable_openconnect; enable_openconnect=${enableval} -else - enable_openconnect="no" -fi - -if (test "${enable_openconnect}" != "no"); then - if (test -z "${path_openconnect}"); then - # Extract the first word of "openconnect", so it can be a program name with args. -set dummy openconnect; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_OPENCONNECT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $OPENCONNECT in - [\\/]* | ?:[\\/]*) - ac_cv_path_OPENCONNECT="$OPENCONNECT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/sbin:/usr/sbin" -for as_dir in $as_dummy -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 - ac_cv_path_OPENCONNECT="$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 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -OPENCONNECT=$ac_cv_path_OPENCONNECT -if test -n "$OPENCONNECT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPENCONNECT" >&5 -$as_echo "$OPENCONNECT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if (test -z "${OPENCONNECT}"); then - as_fn_error $? "openconnect binary not found" "$LINENO" 5 - fi - else - OPENCONNECT="${path_openconnect}" - - fi -fi - if test "${enable_openconnect}" != "no"; then - OPENCONNECT_TRUE= - OPENCONNECT_FALSE='#' -else - OPENCONNECT_TRUE='#' - OPENCONNECT_FALSE= -fi - - if test "${enable_openconnect}" = "builtin"; then - OPENCONNECT_BUILTIN_TRUE= - OPENCONNECT_BUILTIN_FALSE='#' -else - OPENCONNECT_BUILTIN_TRUE='#' - OPENCONNECT_BUILTIN_FALSE= -fi - - - -# Check whether --with-openvpn was given. -if test "${with_openvpn+set}" = set; then : - withval=$with_openvpn; path_openvpn=${withval} -fi - - -# Check whether --enable-openvpn was given. -if test "${enable_openvpn+set}" = set; then : - enableval=$enable_openvpn; enable_openvpn=${enableval} -else - enable_openvpn="no" -fi - -if (test "${enable_openvpn}" != "no"); then - if (test -z "${path_openvpn}"); then - # Extract the first word of "openvpn", so it can be a program name with args. -set dummy openvpn; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_OPENVPN+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $OPENVPN in - [\\/]* | ?:[\\/]*) - ac_cv_path_OPENVPN="$OPENVPN" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/sbin:/usr/sbin" -for as_dir in $as_dummy -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 - ac_cv_path_OPENVPN="$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 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -OPENVPN=$ac_cv_path_OPENVPN -if test -n "$OPENVPN"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPENVPN" >&5 -$as_echo "$OPENVPN" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if (test -z "${OPENVPN}"); then - as_fn_error $? "openvpn binary not found" "$LINENO" 5 - fi - else - OPENVPN="${path_openvpn}" - - fi -fi - if test "${enable_openvpn}" != "no"; then - OPENVPN_TRUE= - OPENVPN_FALSE='#' -else - OPENVPN_TRUE='#' - OPENVPN_FALSE= -fi - - if test "${enable_openvpn}" = "builtin"; then - OPENVPN_BUILTIN_TRUE= - OPENVPN_BUILTIN_FALSE='#' -else - OPENVPN_BUILTIN_TRUE='#' - OPENVPN_BUILTIN_FALSE= -fi - - - -# Check whether --with-vpnc was given. -if test "${with_vpnc+set}" = set; then : - withval=$with_vpnc; path_vpnc=${withval} -fi - - -# Check whether --enable-vpnc was given. -if test "${enable_vpnc+set}" = set; then : - enableval=$enable_vpnc; enable_vpnc=${enableval} -else - enable_vpnc="no" -fi - -if (test "${enable_vpnc}" != "no"); then - if (test -z "${path_vpnc}"); then - # Extract the first word of "vpnc", so it can be a program name with args. -set dummy vpnc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_VPNC+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $VPNC in - [\\/]* | ?:[\\/]*) - ac_cv_path_VPNC="$VPNC" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/sbin:/usr/sbin" -for as_dir in $as_dummy -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 - ac_cv_path_VPNC="$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 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -VPNC=$ac_cv_path_VPNC -if test -n "$VPNC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $VPNC" >&5 -$as_echo "$VPNC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if (test -z "${VPNC}"); then - as_fn_error $? "vpnc binary not found" "$LINENO" 5 - fi - else - VPNC="${path_vpnc}" - - fi -fi - if test "${enable_vpnc}" != "no"; then - VPNC_TRUE= - VPNC_FALSE='#' -else - VPNC_TRUE='#' - VPNC_FALSE= -fi - - if test "${enable_vpnc}" = "builtin"; then - VPNC_BUILTIN_TRUE= - VPNC_BUILTIN_FALSE='#' -else - VPNC_BUILTIN_TRUE='#' - VPNC_BUILTIN_FALSE= -fi - - - -# Check whether --with-l2tp was given. -if test "${with_l2tp+set}" = set; then : - withval=$with_l2tp; path_l2tp=${withval} -fi - - -# Check whether --enable-l2tp was given. -if test "${enable_l2tp+set}" = set; then : - enableval=$enable_l2tp; enable_l2tp=${enableval} -else - enable_l2tp="no" -fi - -if (test "${enable_l2tp}" != "no"); then - if (test -z "${path_pppd}"); then - # Extract the first word of "pppd", so it can be a program name with args. -set dummy pppd; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_PPPD+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $PPPD in - [\\/]* | ?:[\\/]*) - ac_cv_path_PPPD="$PPPD" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/sbin:/usr/sbin" -for as_dir in $as_dummy -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 - ac_cv_path_PPPD="$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 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PPPD" && ac_cv_path_PPPD="/usr/sbin/pppd" - ;; -esac -fi -PPPD=$ac_cv_path_PPPD -if test -n "$PPPD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PPPD" >&5 -$as_echo "$PPPD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - else - PPPD="${path_pppd}" - - fi - for ac_header in pppd/pppd.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "pppd/pppd.h" "ac_cv_header_pppd_pppd_h" "$ac_includes_default" -if test "x$ac_cv_header_pppd_pppd_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PPPD_PPPD_H 1 -_ACEOF - dummy=yes -else - as_fn_error $? "ppp header files are required" "$LINENO" 5 -fi - -done - - if (test -z "${path_l2tp}"); then - # Extract the first word of "xl2tpd", so it can be a program name with args. -set dummy xl2tpd; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_L2TP+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $L2TP in - [\\/]* | ?:[\\/]*) - ac_cv_path_L2TP="$L2TP" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/sbin:/usr/sbin" -for as_dir in $as_dummy -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 - ac_cv_path_L2TP="$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 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_L2TP" && ac_cv_path_L2TP="/usr/sbin/xl2tpd" - ;; -esac -fi -L2TP=$ac_cv_path_L2TP -if test -n "$L2TP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $L2TP" >&5 -$as_echo "$L2TP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - else - L2TP="${path_l2tp}" - - fi -fi - if test "${enable_l2tp}" != "no"; then - L2TP_TRUE= - L2TP_FALSE='#' -else - L2TP_TRUE='#' - L2TP_FALSE= -fi - - if test "${enable_l2tp}" = "builtin"; then - L2TP_BUILTIN_TRUE= - L2TP_BUILTIN_FALSE='#' -else - L2TP_BUILTIN_TRUE='#' - L2TP_BUILTIN_FALSE= -fi - - - -# Check whether --with-pptp was given. -if test "${with_pptp+set}" = set; then : - withval=$with_pptp; path_pptp=${withval} -fi - - -# Check whether --enable-pptp was given. -if test "${enable_pptp+set}" = set; then : - enableval=$enable_pptp; enable_pptp=${enableval} -else - enable_pptp="no" -fi - -if (test "${enable_pptp}" != "no"); then - if (test -z "${path_pppd}"); then - # Extract the first word of "pppd", so it can be a program name with args. -set dummy pppd; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_PPPD+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $PPPD in - [\\/]* | ?:[\\/]*) - ac_cv_path_PPPD="$PPPD" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/sbin:/usr/sbin" -for as_dir in $as_dummy -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 - ac_cv_path_PPPD="$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 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PPPD" && ac_cv_path_PPPD="/usr/sbin/pppd" - ;; -esac -fi -PPPD=$ac_cv_path_PPPD -if test -n "$PPPD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PPPD" >&5 -$as_echo "$PPPD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - else - PPPD="${path_pppd}" - - fi - for ac_header in pppd/pppd.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "pppd/pppd.h" "ac_cv_header_pppd_pppd_h" "$ac_includes_default" -if test "x$ac_cv_header_pppd_pppd_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PPPD_PPPD_H 1 -_ACEOF - dummy=yes -else - as_fn_error $? "ppp header files are required" "$LINENO" 5 -fi - -done - - if (test -z "${path_pptp}"); then - # Extract the first word of "pptp", so it can be a program name with args. -set dummy pptp; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_PPTP+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $PPTP in - [\\/]* | ?:[\\/]*) - ac_cv_path_PPTP="$PPTP" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/sbin:/usr/sbin" -for as_dir in $as_dummy -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 - ac_cv_path_PPTP="$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 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PPTP" && ac_cv_path_PPTP="/usr/sbin/pptp" - ;; -esac -fi -PPTP=$ac_cv_path_PPTP -if test -n "$PPTP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PPTP" >&5 -$as_echo "$PPTP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - else - PPTP="${path_pptp}" - - fi -fi - if test "${enable_pptp}" != "no"; then - PPTP_TRUE= - PPTP_FALSE='#' -else - PPTP_TRUE='#' - PPTP_FALSE= -fi - - if test "${enable_pptp}" = "builtin"; then - PPTP_BUILTIN_TRUE= - PPTP_BUILTIN_FALSE='#' -else - PPTP_BUILTIN_TRUE='#' - PPTP_BUILTIN_FALSE= -fi - - -for ac_header in resolv.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "resolv.h" "ac_cv_header_resolv_h" "$ac_includes_default" -if test "x$ac_cv_header_resolv_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_RESOLV_H 1 -_ACEOF - dummy=yes -else - as_fn_error $? "resolver header files are required" "$LINENO" 5 -fi - -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ns_initparse in -lresolv" >&5 -$as_echo_n "checking for ns_initparse in -lresolv... " >&6; } -if ${ac_cv_lib_resolv_ns_initparse+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lresolv $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ns_initparse (); -int -main () -{ -return ns_initparse (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_resolv_ns_initparse=yes -else - ac_cv_lib_resolv_ns_initparse=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_ns_initparse" >&5 -$as_echo "$ac_cv_lib_resolv_ns_initparse" >&6; } -if test "x$ac_cv_lib_resolv_ns_initparse" = xyes; then : - dummy=yes -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __ns_initparse in -lresolv" >&5 -$as_echo_n "checking for __ns_initparse in -lresolv... " >&6; } -if ${ac_cv_lib_resolv___ns_initparse+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lresolv $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char __ns_initparse (); -int -main () -{ -return __ns_initparse (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_resolv___ns_initparse=yes -else - ac_cv_lib_resolv___ns_initparse=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv___ns_initparse" >&5 -$as_echo "$ac_cv_lib_resolv___ns_initparse" >&6; } -if test "x$ac_cv_lib_resolv___ns_initparse" = xyes; then : - dummy=yes -else - as_fn_error $? "resolver library support is required" "$LINENO" 5 -fi - - -fi - - -ac_fn_c_check_func "$LINENO" "signalfd" "ac_cv_func_signalfd" -if test "x$ac_cv_func_signalfd" = xyes; then : - dummy=yes -else - as_fn_error $? "signalfd support is required" "$LINENO" 5 -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if ${ac_cv_lib_dl_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = xyes; then : - dummy=yes -else - as_fn_error $? "dynamic linking loader is required" "$LINENO" 5 -fi - - -# Check whether --enable-iospm was given. -if test "${enable_iospm+set}" = set; then : - enableval=$enable_iospm; enable_iospm=${enableval} -fi - - if test "${enable_iospm}" = "yes"; then - IOSPM_TRUE= - IOSPM_FALSE='#' -else - IOSPM_TRUE='#' - IOSPM_FALSE= -fi - - -# Check whether --enable-tist was given. -if test "${enable_tist+set}" = set; then : - enableval=$enable_tist; enable_tist=${enableval} -else - enable_tist="no" -fi - - if test "${enable_tist}" != "no"; then - TIST_TRUE= - TIST_FALSE='#' -else - TIST_TRUE='#' - TIST_FALSE= -fi - - if test "${enable_tist}" = "builtin"; then - TIST_BUILTIN_TRUE= - TIST_BUILTIN_FALSE='#' -else - TIST_BUILTIN_TRUE='#' - TIST_BUILTIN_FALSE= -fi - - -# Check whether --enable-session-policy-local was given. -if test "${enable_session_policy_local+set}" = set; then : - enableval=$enable_session_policy_local; enable_session_policy_local=${enableval} -else - enable_session_policy_local="no" -fi - - if test "${enable_session_policy_local}" != "no"; then - SESSION_POLICY_LOCAL_TRUE= - SESSION_POLICY_LOCAL_FALSE='#' -else - SESSION_POLICY_LOCAL_TRUE='#' - SESSION_POLICY_LOCAL_FALSE= -fi - - if test "${enable_session_policy_local}" = "builtin"; then - SESSION_POLICY_LOCAL_BUILTIN_TRUE= - SESSION_POLICY_LOCAL_BUILTIN_FALSE='#' -else - SESSION_POLICY_LOCAL_BUILTIN_TRUE='#' - SESSION_POLICY_LOCAL_BUILTIN_FALSE= -fi - - - -# Check whether --with-stats-max-file-size was given. -if test "${with_stats_max_file_size+set}" = set; then : - withval=$with_stats_max_file_size; stats_max_file_size=${withval} -fi - - -if (test -z "${stats_max_file_size}"); then - # default size is 16 kByte - stats_max_file_size="16 * 8 * 128" -fi - - -cat >>confdefs.h <<_ACEOF -#define STATS_MAX_FILE_SIZE (${stats_max_file_size}) -_ACEOF - - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB" >&5 -$as_echo_n "checking for GLIB... " >&6; } - -if test -n "$GLIB_CFLAGS"; then - pkg_cv_GLIB_CFLAGS="$GLIB_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.28\""; } >&5 - ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.28") 2>&5 - ac_status=$? - $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 - else - pkg_failed=untried -fi -if test -n "$GLIB_LIBS"; then - pkg_cv_GLIB_LIBS="$GLIB_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.28\""; } >&5 - ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.28") 2>&5 - ac_status=$? - $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 - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= 2.28" 2>&1` - else - GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "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_fn_error $? "GLib >= 2.28 is required" "$LINENO" 5 -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error $? "GLib >= 2.28 is required" "$LINENO" 5 -else - GLIB_CFLAGS=$pkg_cv_GLIB_CFLAGS - GLIB_LIBS=$pkg_cv_GLIB_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - dummy=yes -fi - - - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DBUS" >&5 -$as_echo_n "checking for DBUS... " >&6; } - -if test -n "$DBUS_CFLAGS"; then - pkg_cv_DBUS_CFLAGS="$DBUS_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-1 >= 1.4\""; } >&5 - ($PKG_CONFIG --exists --print-errors "dbus-1 >= 1.4") 2>&5 - ac_status=$? - $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 - else - pkg_failed=untried -fi -if test -n "$DBUS_LIBS"; then - pkg_cv_DBUS_LIBS="$DBUS_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-1 >= 1.4\""; } >&5 - ($PKG_CONFIG --exists --print-errors "dbus-1 >= 1.4") 2>&5 - ac_status=$? - $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 - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - DBUS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "dbus-1 >= 1.4" 2>&1` - else - DBUS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "dbus-1 >= 1.4" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$DBUS_PKG_ERRORS" >&5 - - as_fn_error $? "D-Bus >= 1.4 is required" "$LINENO" 5 -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error $? "D-Bus >= 1.4 is required" "$LINENO" 5 -else - DBUS_CFLAGS=$pkg_cv_DBUS_CFLAGS - DBUS_LIBS=$pkg_cv_DBUS_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - dummy=yes -fi - - - - -# Check whether --with-dbusconfdir was given. -if test "${with_dbusconfdir+set}" = set; then : - withval=$with_dbusconfdir; path_dbusconf=${withval} -else - path_dbusconf="`$PKG_CONFIG --variable=sysconfdir dbus-1`" -fi - -if (test -z "${path_dbusconf}"); then - DBUS_CONFDIR="${sysconfdir}/dbus-1/system.d" -else - DBUS_CONFDIR="${path_dbusconf}/dbus-1/system.d" -fi - - - -# Check whether --with-dbusdatadir was given. -if test "${with_dbusdatadir+set}" = set; then : - withval=$with_dbusdatadir; path_dbusdata=${withval} -else - path_dbusdata="`$PKG_CONFIG --variable=datadir dbus-1`" -fi - -if (test -z "${path_dbusdata}"); then - DBUS_DATADIR="${datadir}/dbus-1/system-services" -else - DBUS_DATADIR="${path_dbusdata}/dbus-1/system-services" -fi - - - -# Check whether --with-systemdunitdir was given. -if test "${with_systemdunitdir+set}" = set; then : - withval=$with_systemdunitdir; path_systemdunit=${withval} -else - path_systemdunit="`$PKG_CONFIG --variable=systemdsystemunitdir systemd`" -fi - -if (test -n "${path_systemdunit}"); then - SYSTEMD_UNITDIR="${path_systemdunit}" - -fi - if test -n "${path_systemdunit}"; then - SYSTEMD_TRUE= - SYSTEMD_FALSE='#' -else - SYSTEMD_TRUE='#' - SYSTEMD_FALSE= -fi - - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XTABLES" >&5 -$as_echo_n "checking for XTABLES... " >&6; } - -if test -n "$XTABLES_CFLAGS"; then - pkg_cv_XTABLES_CFLAGS="$XTABLES_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xtables >= 1.4.11\""; } >&5 - ($PKG_CONFIG --exists --print-errors "xtables >= 1.4.11") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_XTABLES_CFLAGS=`$PKG_CONFIG --cflags "xtables >= 1.4.11" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$XTABLES_LIBS"; then - pkg_cv_XTABLES_LIBS="$XTABLES_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xtables >= 1.4.11\""; } >&5 - ($PKG_CONFIG --exists --print-errors "xtables >= 1.4.11") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_XTABLES_LIBS=`$PKG_CONFIG --libs "xtables >= 1.4.11" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - XTABLES_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "xtables >= 1.4.11" 2>&1` - else - XTABLES_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "xtables >= 1.4.11" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$XTABLES_PKG_ERRORS" >&5 - - as_fn_error $? "Xtables library is required" "$LINENO" 5 -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error $? "Xtables library is required" "$LINENO" 5 -else - XTABLES_CFLAGS=$pkg_cv_XTABLES_CFLAGS - XTABLES_LIBS=$pkg_cv_XTABLES_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - dummy=yes -fi - - - -# Check whether --enable-test was given. -if test "${enable_test+set}" = set; then : - enableval=$enable_test; enable_test=${enableval} -fi - - if test "${enable_test}" = "yes"; then - TEST_TRUE= - TEST_FALSE='#' -else - TEST_TRUE='#' - TEST_FALSE= -fi - - -# Check whether --enable-nmcompat was given. -if test "${enable_nmcompat+set}" = set; then : - enableval=$enable_nmcompat; enable_nmcompat=${enableval} -else - enable_nmcompat="no" -fi - - if test "${enable_nmcompat}" != "no"; then - NMCOMPAT_TRUE= - NMCOMPAT_FALSE='#' -else - NMCOMPAT_TRUE='#' - NMCOMPAT_FALSE= -fi - - -# Check whether --enable-polkit was given. -if test "${enable_polkit+set}" = set; then : - enableval=$enable_polkit; enable_polkit=${enableval} -else - enable_polkit="no" -fi - -if (test "${enable_polkit}" != "no"); then - POLKIT_DATADIR="`$PKG_CONFIG --variable=actiondir polkit`" - POLKIT_DATADIR="" - if (test -z "${POLKIT_DATADIR}"); then - POLKIT_DATADIR="${datadir}/polkit-1/actions" - fi - -fi - if test "${enable_polkit}" != "no"; then - POLKIT_TRUE= - POLKIT_FALSE='#' -else - POLKIT_TRUE='#' - POLKIT_FALSE= -fi - - -# Check whether --enable-selinux was given. -if test "${enable_selinux+set}" = set; then : - enableval=$enable_selinux; enable_selinux=${enableval} -else - enable_selinux="no" -fi - - if test "${enable_selinux}" != "no"; then - SELINUX_TRUE= - SELINUX_FALSE='#' -else - SELINUX_TRUE='#' - SELINUX_FALSE= -fi - - -# Check whether --enable-loopback was given. -if test "${enable_loopback+set}" = set; then : - enableval=$enable_loopback; enable_loopback=${enableval} -fi - - if test "${enable_loopback}" != "no"; then - LOOPBACK_TRUE= - LOOPBACK_FALSE='#' -else - LOOPBACK_TRUE='#' - LOOPBACK_FALSE= -fi - - -# Check whether --enable-ethernet was given. -if test "${enable_ethernet+set}" = set; then : - enableval=$enable_ethernet; enable_ethernet=${enableval} -fi - - if test "${enable_ethernet}" != "no"; then - ETHERNET_TRUE= - ETHERNET_FALSE='#' -else - ETHERNET_TRUE='#' - ETHERNET_FALSE= -fi - - -# Check whether --enable-gadget was given. -if test "${enable_gadget+set}" = set; then : - enableval=$enable_gadget; enable_gadget=${enableval} -fi - - if test "${enable_gadget}" != "no"; then - GADGET_TRUE= - GADGET_FALSE='#' -else - GADGET_TRUE='#' - GADGET_FALSE= -fi - - -# Check whether --enable-wifi was given. -if test "${enable_wifi+set}" = set; then : - enableval=$enable_wifi; enable_wifi=${enableval} -fi - - if test "${enable_wifi}" != "no"; then - WIFI_TRUE= - WIFI_FALSE='#' -else - WIFI_TRUE='#' - WIFI_FALSE= -fi - - -# Check whether --enable-bluetooth was given. -if test "${enable_bluetooth+set}" = set; then : - enableval=$enable_bluetooth; enable_bluetooth=${enableval} -fi - - if test "${enable_bluetooth}" != "no"; then - BLUETOOTH_TRUE= - BLUETOOTH_FALSE='#' -else - BLUETOOTH_TRUE='#' - BLUETOOTH_FALSE= -fi - - -# Check whether --enable-ofono was given. -if test "${enable_ofono+set}" = set; then : - enableval=$enable_ofono; enable_ofono=${enableval} -fi - - if test "${enable_ofono}" != "no"; then - OFONO_TRUE= - OFONO_FALSE='#' -else - OFONO_TRUE='#' - OFONO_FALSE= -fi - - -# Check whether --enable-dundee was given. -if test "${enable_dundee+set}" = set; then : - enableval=$enable_dundee; enable_dundee=${enableval} -fi - - if test "${enable_dundee}" != "no"; then - DUNDEE_TRUE= - DUNDEE_FALSE='#' -else - DUNDEE_TRUE='#' - DUNDEE_FALSE= -fi - - -# Check whether --enable-pacrunner was given. -if test "${enable_pacrunner+set}" = set; then : - enableval=$enable_pacrunner; enable_pacrunner=${enableval} -fi - - if test "${enable_pacrunner}" != "no"; then - PACRUNNER_TRUE= - PACRUNNER_FALSE='#' -else - PACRUNNER_TRUE='#' - PACRUNNER_FALSE= -fi - - -# Check whether --enable-neard was given. -if test "${enable_neard+set}" = set; then : - enableval=$enable_neard; enable_neard=${enableval} -fi - - if test "${enable_neard}" != "no"; then - NEARD_TRUE= - NEARD_FALSE='#' -else - NEARD_TRUE='#' - NEARD_FALSE= -fi - - -# Check whether --enable-wispr was given. -if test "${enable_wispr+set}" = set; then : - enableval=$enable_wispr; enable_wispr=${enableval} -fi - - if test "${enable_wispr}" != "no"; then - WISPR_TRUE= - WISPR_FALSE='#' -else - WISPR_TRUE='#' - WISPR_FALSE= -fi - - -# Check whether --enable-tools was given. -if test "${enable_tools+set}" = set; then : - enableval=$enable_tools; enable_tools=${enableval} -fi - - if test "${enable_tools}" != "no"; then - TOOLS_TRUE= - TOOLS_FALSE='#' -else - TOOLS_TRUE='#' - TOOLS_FALSE= -fi - - -if (test "${enable_tools}" != "no"); then - for ac_prog in iptables-save -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_IPTABLES_SAVE+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $IPTABLES_SAVE in - [\\/]* | ?:[\\/]*) - ac_cv_path_IPTABLES_SAVE="$IPTABLES_SAVE" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/sbin:/usr/sbin" -for as_dir in $as_dummy -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 - ac_cv_path_IPTABLES_SAVE="$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 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -IPTABLES_SAVE=$ac_cv_path_IPTABLES_SAVE -if test -n "$IPTABLES_SAVE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IPTABLES_SAVE" >&5 -$as_echo "$IPTABLES_SAVE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$IPTABLES_SAVE" && break -done - - IPTABLES_SAVE=$ac_cv_path_IPTABLES_SAVE -else - IPTABLES_SAVE="" -fi - - -# Check whether --enable-client was given. -if test "${enable_client+set}" = set; then : - enableval=$enable_client; enable_client=${enableval} -fi - - if test "${enable_client}" != "no"; then - CLIENT_TRUE= - CLIENT_FALSE='#' -else - CLIENT_TRUE='#' - CLIENT_FALSE= -fi - - -if (test "${enable_wispr}" != "no"); then - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNUTLS" >&5 -$as_echo_n "checking for GNUTLS... " >&6; } - -if test -n "$GNUTLS_CFLAGS"; then - pkg_cv_GNUTLS_CFLAGS="$GNUTLS_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gnutls") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GNUTLS_CFLAGS=`$PKG_CONFIG --cflags "gnutls" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$GNUTLS_LIBS"; then - pkg_cv_GNUTLS_LIBS="$GNUTLS_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gnutls") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GNUTLS_LIBS=`$PKG_CONFIG --libs "gnutls" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - GNUTLS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gnutls" 2>&1` - else - GNUTLS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gnutls" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$GNUTLS_PKG_ERRORS" >&5 - - as_fn_error $? "GnuTLS library is required" "$LINENO" 5 -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error $? "GnuTLS library is required" "$LINENO" 5 -else - GNUTLS_CFLAGS=$pkg_cv_GNUTLS_CFLAGS - GNUTLS_LIBS=$pkg_cv_GNUTLS_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - dummy=yes -fi -else - GNUTLS_CFLAGS="" - GNUTLS_LIBS="" -fi - - - -if (test "${enable_loopback}" != "no"); then - for ac_header in sys/inotify.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "sys/inotify.h" "ac_cv_header_sys_inotify_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_inotify_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SYS_INOTIFY_H 1 -_ACEOF - dummy=yes -else - as_fn_error $? "inotify header files are required" "$LINENO" 5 -fi - -done - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inotify_init in -lc" >&5 -$as_echo_n "checking for inotify_init in -lc... " >&6; } -if ${ac_cv_lib_c_inotify_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lc $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char inotify_init (); -int -main () -{ -return inotify_init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_c_inotify_init=yes -else - ac_cv_lib_c_inotify_init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_inotify_init" >&5 -$as_echo "$ac_cv_lib_c_inotify_init" >&6; } -if test "x$ac_cv_lib_c_inotify_init" = xyes; then : - dummy=yes -else - as_fn_error $? "inotify library support is required" "$LINENO" 5 -fi - -fi - -if (test "${enable_wifi}" != "no"); then - # Extract the first word of "wpa_supplicant", so it can be a program name with args. -set dummy wpa_supplicant; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_WPASUPPLICANT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $WPASUPPLICANT in - [\\/]* | ?:[\\/]*) - ac_cv_path_WPASUPPLICANT="$WPASUPPLICANT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/sbin:/usr/sbin" -for as_dir in $as_dummy -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 - ac_cv_path_WPASUPPLICANT="$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 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -WPASUPPLICANT=$ac_cv_path_WPASUPPLICANT -if test -n "$WPASUPPLICANT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WPASUPPLICANT" >&5 -$as_echo "$WPASUPPLICANT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi - -# Check whether --enable-datafiles was given. -if test "${enable_datafiles+set}" = set; then : - enableval=$enable_datafiles; enable_datafiles=${enableval} -fi - - if test "${enable_datafiles}" != "no"; then - DATAFILES_TRUE= - DATAFILES_FALSE='#' -else - DATAFILES_TRUE='#' - DATAFILES_FALSE= -fi - - -if (test "${enable_client}" != "no"); then - for ac_header in readline/readline.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "readline/readline.h" "ac_cv_header_readline_readline_h" "$ac_includes_default" -if test "x$ac_cv_header_readline_readline_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_READLINE_READLINE_H 1 -_ACEOF - dummy=yes -else - as_fn_error $? "readline header files are required" "$LINENO" 5 -fi - -done - -fi - - if test "${enable_openconnect}" != "no" -o \ - "${enable_openvpn}" != "no" -o \ - "${enable_vpnc}" != "no" -o \ - "${enable_l2tp}" != "no" -o \ - "${enable_pptp}" != "no"; then - VPN_TRUE= - VPN_FALSE='#' -else - VPN_TRUE='#' - VPN_FALSE= -fi - - -ac_config_files="$ac_config_files Makefile include/version.h connman.pc" - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -U= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" - as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - - if test -n "$EXEEXT"; then - am__EXEEXT_TRUE= - am__EXEEXT_FALSE='#' -else - am__EXEEXT_TRUE='#' - am__EXEEXT_FALSE= -fi - -if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then - as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - as_fn_error $? "conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HH2SERIAL_GPS_TRUE}" && test -z "${HH2SERIAL_GPS_FALSE}"; then - as_fn_error $? "conditional \"HH2SERIAL_GPS\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HH2SERIAL_GPS_BUILTIN_TRUE}" && test -z "${HH2SERIAL_GPS_BUILTIN_FALSE}"; then - as_fn_error $? "conditional \"HH2SERIAL_GPS_BUILTIN\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${OPENCONNECT_TRUE}" && test -z "${OPENCONNECT_FALSE}"; then - as_fn_error $? "conditional \"OPENCONNECT\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${OPENCONNECT_BUILTIN_TRUE}" && test -z "${OPENCONNECT_BUILTIN_FALSE}"; then - as_fn_error $? "conditional \"OPENCONNECT_BUILTIN\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${OPENVPN_TRUE}" && test -z "${OPENVPN_FALSE}"; then - as_fn_error $? "conditional \"OPENVPN\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${OPENVPN_BUILTIN_TRUE}" && test -z "${OPENVPN_BUILTIN_FALSE}"; then - as_fn_error $? "conditional \"OPENVPN_BUILTIN\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${VPNC_TRUE}" && test -z "${VPNC_FALSE}"; then - as_fn_error $? "conditional \"VPNC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${VPNC_BUILTIN_TRUE}" && test -z "${VPNC_BUILTIN_FALSE}"; then - as_fn_error $? "conditional \"VPNC_BUILTIN\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${L2TP_TRUE}" && test -z "${L2TP_FALSE}"; then - as_fn_error $? "conditional \"L2TP\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${L2TP_BUILTIN_TRUE}" && test -z "${L2TP_BUILTIN_FALSE}"; then - as_fn_error $? "conditional \"L2TP_BUILTIN\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${PPTP_TRUE}" && test -z "${PPTP_FALSE}"; then - as_fn_error $? "conditional \"PPTP\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${PPTP_BUILTIN_TRUE}" && test -z "${PPTP_BUILTIN_FALSE}"; then - as_fn_error $? "conditional \"PPTP_BUILTIN\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${IOSPM_TRUE}" && test -z "${IOSPM_FALSE}"; then - as_fn_error $? "conditional \"IOSPM\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${TIST_TRUE}" && test -z "${TIST_FALSE}"; then - as_fn_error $? "conditional \"TIST\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${TIST_BUILTIN_TRUE}" && test -z "${TIST_BUILTIN_FALSE}"; then - as_fn_error $? "conditional \"TIST_BUILTIN\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${SESSION_POLICY_LOCAL_TRUE}" && test -z "${SESSION_POLICY_LOCAL_FALSE}"; then - as_fn_error $? "conditional \"SESSION_POLICY_LOCAL\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${SESSION_POLICY_LOCAL_BUILTIN_TRUE}" && test -z "${SESSION_POLICY_LOCAL_BUILTIN_FALSE}"; then - as_fn_error $? "conditional \"SESSION_POLICY_LOCAL_BUILTIN\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${SYSTEMD_TRUE}" && test -z "${SYSTEMD_FALSE}"; then - as_fn_error $? "conditional \"SYSTEMD\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${TEST_TRUE}" && test -z "${TEST_FALSE}"; then - as_fn_error $? "conditional \"TEST\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${NMCOMPAT_TRUE}" && test -z "${NMCOMPAT_FALSE}"; then - as_fn_error $? "conditional \"NMCOMPAT\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${POLKIT_TRUE}" && test -z "${POLKIT_FALSE}"; then - as_fn_error $? "conditional \"POLKIT\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${SELINUX_TRUE}" && test -z "${SELINUX_FALSE}"; then - as_fn_error $? "conditional \"SELINUX\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${LOOPBACK_TRUE}" && test -z "${LOOPBACK_FALSE}"; then - as_fn_error $? "conditional \"LOOPBACK\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${ETHERNET_TRUE}" && test -z "${ETHERNET_FALSE}"; then - as_fn_error $? "conditional \"ETHERNET\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${GADGET_TRUE}" && test -z "${GADGET_FALSE}"; then - as_fn_error $? "conditional \"GADGET\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${WIFI_TRUE}" && test -z "${WIFI_FALSE}"; then - as_fn_error $? "conditional \"WIFI\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${BLUETOOTH_TRUE}" && test -z "${BLUETOOTH_FALSE}"; then - as_fn_error $? "conditional \"BLUETOOTH\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${OFONO_TRUE}" && test -z "${OFONO_FALSE}"; then - as_fn_error $? "conditional \"OFONO\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${DUNDEE_TRUE}" && test -z "${DUNDEE_FALSE}"; then - as_fn_error $? "conditional \"DUNDEE\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${PACRUNNER_TRUE}" && test -z "${PACRUNNER_FALSE}"; then - as_fn_error $? "conditional \"PACRUNNER\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${NEARD_TRUE}" && test -z "${NEARD_FALSE}"; then - as_fn_error $? "conditional \"NEARD\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${WISPR_TRUE}" && test -z "${WISPR_FALSE}"; then - as_fn_error $? "conditional \"WISPR\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${TOOLS_TRUE}" && test -z "${TOOLS_FALSE}"; then - as_fn_error $? "conditional \"TOOLS\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${CLIENT_TRUE}" && test -z "${CLIENT_FALSE}"; then - as_fn_error $? "conditional \"CLIENT\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${DATAFILES_TRUE}" && test -z "${DATAFILES_FALSE}"; then - as_fn_error $? "conditional \"DATAFILES\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${VPN_TRUE}" && test -z "${VPN_FALSE}"; then - as_fn_error $? "conditional \"VPN\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi - -: "${CONFIG_STATUS=./config.status}" -ac_write_fail=0 -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -as_write_fail=0 -cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false - -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... 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'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - 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 - -# 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'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 -## ----------------------------------- ## -## Main body of $CONFIG_STATUS script. ## -## ----------------------------------- ## -_ASEOF -test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# Save the log message, to keep $0 and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by connman $as_me 1.29, which was -generated by GNU Autoconf 2.69. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac - -case $ac_config_headers in *" -"*) set x $ac_config_headers; shift; ac_config_headers=$*;; -esac - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" -config_headers="$ac_config_headers" -config_commands="$ac_config_commands" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions -from templates according to the current configuration. Unless the files -and actions are specified as TAGs, all are instantiated by default. - -Usage: $0 [OPTION]... [TAG]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - --config print configuration, then exit - -q, --quiet, --silent - do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Configuration commands: -$config_commands - -Report bugs to the package provider." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" -ac_cs_version="\\ -connman config.status 1.29 -configured by $0, generated by GNU Autoconf 2.69, - with options \\"\$ac_cs_config\\" - -Copyright (C) 2012 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -INSTALL='$INSTALL' -MKDIR_P='$MKDIR_P' -AWK='$AWK' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=?*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - --*=) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg= - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - '') as_fn_error $? "missing file argument" ;; - esac - as_fn_append CONFIG_FILES " '$ac_optarg'" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - as_fn_append CONFIG_HEADERS " '$ac_optarg'" - ac_need_defaults=false;; - --he | --h) - # Conflict between --help and --header - as_fn_error $? "ambiguous option: \`$1' -Try \`$0 --help' for more information.";; - --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; - - *) as_fn_append ac_config_targets " $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -if \$ac_cs_recheck; then - set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# -# INIT-COMMANDS -# -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" - - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -sed_quote_subst='$sed_quote_subst' -double_quote_subst='$double_quote_subst' -delay_variable_subst='$delay_variable_subst' -enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' -macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' -macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' -enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' -pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' -enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' -SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' -ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' -PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' -host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' -host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' -host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' -build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' -build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' -build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' -SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' -Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' -GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' -EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' -FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' -LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' -NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' -LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' -max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' -ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' -exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' -lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' -lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' -lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' -lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' -lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' -reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' -reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' -OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' -deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' -file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' -file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' -want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' -DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' -sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' -AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' -AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' -archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' -STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' -RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' -old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' -old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' -old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' -lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' -CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' -CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' -compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' -GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' -nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' -lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' -objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' -MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' -lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' -need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' -MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' -DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' -NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' -LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' -OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' -OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' -libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' -shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' -extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' -archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' -enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' -export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' -whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' -compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' -old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' -old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' -archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' -archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' -module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' -module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' -with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' -allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' -no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' -hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' -hardcode_libdir_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"`' -hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' -hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' -hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' -inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' -link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' -always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' -export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' -exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' -include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' -prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' -postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' -file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' -variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' -need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' -need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' -version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' -runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' -shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' -shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' -libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' -library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' -soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' -install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' -postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' -postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' -finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' -finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' -hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' -sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' -sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' -hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' -enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' -enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' -enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' -old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' -striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' - -LTCC='$LTCC' -LTCFLAGS='$LTCFLAGS' -compiler='$compiler_DEFAULT' - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -\$1 -_LTECHO_EOF' -} - -# Quote evaled strings. -for var in SHELL \ -ECHO \ -PATH_SEPARATOR \ -SED \ -GREP \ -EGREP \ -FGREP \ -LD \ -NM \ -LN_S \ -lt_SP2NL \ -lt_NL2SP \ -reload_flag \ -OBJDUMP \ -deplibs_check_method \ -file_magic_cmd \ -file_magic_glob \ -want_nocaseglob \ -DLLTOOL \ -sharedlib_from_linklib_cmd \ -AR \ -AR_FLAGS \ -archiver_list_spec \ -STRIP \ -RANLIB \ -CC \ -CFLAGS \ -compiler \ -lt_cv_sys_global_symbol_pipe \ -lt_cv_sys_global_symbol_to_cdecl \ -lt_cv_sys_global_symbol_to_c_name_address \ -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -nm_file_list_spec \ -lt_prog_compiler_no_builtin_flag \ -lt_prog_compiler_pic \ -lt_prog_compiler_wl \ -lt_prog_compiler_static \ -lt_cv_prog_compiler_c_o \ -need_locks \ -MANIFEST_TOOL \ -DSYMUTIL \ -NMEDIT \ -LIPO \ -OTOOL \ -OTOOL64 \ -shrext_cmds \ -export_dynamic_flag_spec \ -whole_archive_flag_spec \ -compiler_needs_object \ -with_gnu_ld \ -allow_undefined_flag \ -no_undefined_flag \ -hardcode_libdir_flag_spec \ -hardcode_libdir_separator \ -exclude_expsyms \ -include_expsyms \ -file_list_spec \ -variables_saved_for_relink \ -libname_spec \ -library_names_spec \ -soname_spec \ -install_override_mode \ -finish_eval \ -old_striplib \ -striplib; do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -# Double-quote double-evaled strings. -for var in reload_cmds \ -old_postinstall_cmds \ -old_postuninstall_cmds \ -old_archive_cmds \ -extract_expsyms_cmds \ -old_archive_from_new_cmds \ -old_archive_from_expsyms_cmds \ -archive_cmds \ -archive_expsym_cmds \ -module_cmds \ -module_expsym_cmds \ -export_symbols_cmds \ -prelink_cmds \ -postlink_cmds \ -postinstall_cmds \ -postuninstall_cmds \ -finish_cmds \ -sys_lib_search_path_spec \ -sys_lib_dlsearch_path_spec; do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -ac_aux_dir='$ac_aux_dir' -xsi_shell='$xsi_shell' -lt_shell_append='$lt_shell_append' - -# See if we are running on zsh, and set the options which allow our -# commands through without removal of \ escapes INIT. -if test -n "\${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi - - - PACKAGE='$PACKAGE' - VERSION='$VERSION' - TIMESTAMP='$TIMESTAMP' - RM='$RM' - ofile='$ofile' - - - - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "include/version.h") CONFIG_FILES="$CONFIG_FILES include/version.h" ;; - "connman.pc") CONFIG_FILES="$CONFIG_FILES connman.pc" ;; - - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= ac_tmp= - trap 'exit_status=$? - : "${ac_tmp:=$tmp}" - { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status -' 0 - trap 'as_fn_exit 1' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 -ac_tmp=$tmp - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -ac_cr=`echo X | tr X '\015'` -# On cygwin, bash can eat \r inside `` if the user requested igncr. -# But we know of no other shell where ac_cr would be empty at this -# point, so we can use a bashism as a fallback. -if test "x$ac_cr" = x; then - eval ac_cr=\$\'\\r\' -fi -ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` -if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\\r' -else - ac_cs_awk_cr=$ac_cr -fi - -echo 'BEGIN {' >"$ac_tmp/subs1.awk" && -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" && - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" -} >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\)..*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\)..*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' <conf$$subs.awk | sed ' -/^[^""]/{ - N - s/\n// -} -' >>$CONFIG_STATUS || ac_write_fail=1 -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACAWK -cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then - sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" -else - cat -fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ - || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 -_ACEOF - -# VPATH may cause trouble with some makes, so we remove sole $(srcdir), -# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ -h -s/// -s/^/:/ -s/[ ]*$/:/ -s/:\$(srcdir):/:/g -s/:\${srcdir}:/:/g -s/:@srcdir@:/:/g -s/^:*// -s/:*$// -x -s/\(=[ ]*\).*/\1/ -G -s/\n// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" - -# Set up the scripts for CONFIG_HEADERS section. -# No need to generate them if there are no CONFIG_HEADERS. -# This happens for instance with `./config.status Makefile'. -if test -n "$CONFIG_HEADERS"; then -cat >"$ac_tmp/defines.awk" <<\_ACAWK || -BEGIN { -_ACEOF - -# Transform confdefs.h into an awk script `defines.awk', embedded as -# here-document in config.status, that substitutes the proper values into -# config.h.in to produce config.h. - -# Create a delimiter string that does not exist in confdefs.h, to ease -# handling of long lines. -ac_delim='%!_!# ' -for ac_last_try in false false :; do - ac_tt=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_tt"; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -# For the awk script, D is an array of macro values keyed by name, -# likewise P contains macro parameters if any. Preserve backslash -# newline sequences. - -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -sed -n ' -s/.\{148\}/&'"$ac_delim"'/g -t rset -:rset -s/^[ ]*#[ ]*define[ ][ ]*/ / -t def -d -:def -s/\\$// -t bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3"/p -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p -d -:bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3\\\\\\n"\\/p -t cont -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p -t cont -d -:cont -n -s/.\{148\}/&'"$ac_delim"'/g -t clear -:clear -s/\\$// -t bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/"/p -d -:bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p -b cont -' <confdefs.h | sed ' -s/'"$ac_delim"'/"\\\ -"/g' >>$CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - for (key in D) D_is_set[key] = 1 - FS = "" -} -/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { - line = \$ 0 - split(line, arg, " ") - if (arg[1] == "#") { - defundef = arg[2] - mac1 = arg[3] - } else { - defundef = substr(arg[1], 2) - mac1 = arg[2] - } - split(mac1, mac2, "(") #) - macro = mac2[1] - prefix = substr(line, 1, index(line, defundef) - 1) - if (D_is_set[macro]) { - # Preserve the white space surrounding the "#". - print prefix "define", macro P[macro] D[macro] - next - } else { - # Replace #undef with comments. This is necessary, for example, - # in the case of _POSIX_SOURCE, which is predefined and required - # on some systems where configure will not decide to define it. - if (defundef == "undef") { - print "/*", prefix defundef, macro, "*/" - next - } - } -} -{ print } -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 -fi # test -n "$CONFIG_HEADERS" - - -eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" -shift -for ac_tag -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$ac_tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; - esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - as_fn_append ac_file_inputs " '$ac_f'" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - # Neutralize special characters interpreted by sed in replacement strings. - case $configure_input in #( - *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | - sed 's/[\\\\&|]/\\\\&/g'`;; #( - *) ac_sed_conf_input=$configure_input;; - esac - - case $ac_tag in - *:-:* | *:-) cat >"$ac_tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; - esac - ac_MKDIR_P=$MKDIR_P - case $MKDIR_P in - [\\/$]* | ?:[\\/]* ) ;; - */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; - esac -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= -ac_sed_dataroot=' -/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p' -case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_sed_extra="$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s|@configure_input@|$ac_sed_conf_input|;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@top_build_prefix@&$ac_top_build_prefix&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -s&@INSTALL@&$ac_INSTALL&;t t -s&@MKDIR_P@&$ac_MKDIR_P&;t t -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ - >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ - "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&2;} - - rm -f "$ac_tmp/stdin" - case $ac_file in - -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; - *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; - esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - ;; - :H) - # - # CONFIG_HEADER - # - if test x"$ac_file" != x-; then - { - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" - } >"$ac_tmp/config.h" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 -$as_echo "$as_me: $ac_file is unchanged" >&6;} - else - rm -f "$ac_file" - mv "$ac_tmp/config.h" "$ac_file" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - fi - else - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error $? "could not create -" "$LINENO" 5 - fi -# Compute "$ac_file"'s index in $config_headers. -_am_arg="$ac_file" -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || -$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$_am_arg" : 'X\(//\)[^/]' \| \ - X"$_am_arg" : 'X\(//\)$' \| \ - X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$_am_arg" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'`/stamp-h$_am_stamp_count - ;; - - :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 -$as_echo "$as_me: executing $ac_file commands" >&6;} - ;; - esac - - - case $ac_file$ac_mode in - "depfiles":C) test x"$AMDEP_TRUE" != x"" || { - # Autoconf 2.62 quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac - shift - for mf - do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`$as_dirname -- "$mf" || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`$as_dirname -- "$file" || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir=$dirpart/$fdir; as_fn_mkdir_p - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done - done -} - ;; - "libtool":C) - - # See if we are running on zsh, and set the options which allow our - # commands through without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - - cfgfile="${ofile}T" - trap "$RM \"$cfgfile\"; exit 1" 1 2 15 - $RM "$cfgfile" - - cat <<_LT_EOF >> "$cfgfile" -#! $SHELL - -# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -# 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. -# Written by Gordon Matzigkeit, 1996 -# -# This file is part of GNU Libtool. -# -# GNU Libtool is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of -# the License, or (at your option) any later version. -# -# As a special exception to the GNU General Public License, -# if you distribute this file as part of a program or library that -# is built using GNU Libtool, you may include this file under the -# same distribution terms that you use for the rest of that program. -# -# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, or -# obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - - -# The names of the tagged configurations supported by this script. -available_tags="" - -# ### BEGIN LIBTOOL CONFIG - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Which release of libtool.m4 was used? -macro_version=$macro_version -macro_revision=$macro_revision - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# What type of objects to build. -pic_mode=$pic_mode - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# An echo program that protects backslashes. -ECHO=$lt_ECHO - -# The PATH separator for the build system. -PATH_SEPARATOR=$lt_PATH_SEPARATOR - -# The host system. -host_alias=$host_alias -host=$host -host_os=$host_os - -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os - -# A sed program that does not truncate output. -SED=$lt_SED - -# Sed that helps us avoid accidentally triggering echo(1) options like -n. -Xsed="\$SED -e 1s/^X//" - -# A grep program that handles long lines. -GREP=$lt_GREP - -# An ERE matcher. -EGREP=$lt_EGREP - -# A literal string matcher. -FGREP=$lt_FGREP - -# A BSD- or MS-compatible name lister. -NM=$lt_NM - -# Whether we need soft or hard links. -LN_S=$lt_LN_S - -# What is the maximum length of a command? -max_cmd_len=$max_cmd_len - -# Object file suffix (normally "o"). -objext=$ac_objext - -# Executable file suffix (normally ""). -exeext=$exeext - -# whether the shell understands "unset". -lt_unset=$lt_unset - -# turn spaces into newlines. -SP2NL=$lt_lt_SP2NL - -# turn newlines into spaces. -NL2SP=$lt_lt_NL2SP - -# convert \$build file names to \$host format. -to_host_file_cmd=$lt_cv_to_host_file_cmd - -# convert \$build files to toolchain format. -to_tool_file_cmd=$lt_cv_to_tool_file_cmd - -# An object symbol dumper. -OBJDUMP=$lt_OBJDUMP - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method = "file_magic". -file_magic_cmd=$lt_file_magic_cmd - -# How to find potential files when deplibs_check_method = "file_magic". -file_magic_glob=$lt_file_magic_glob - -# Find potential files using nocaseglob when deplibs_check_method = "file_magic". -want_nocaseglob=$lt_want_nocaseglob - -# DLL creation program. -DLLTOOL=$lt_DLLTOOL - -# Command to associate shared and link libraries. -sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd - -# The archiver. -AR=$lt_AR - -# Flags to create an archive. -AR_FLAGS=$lt_AR_FLAGS - -# How to feed a file listing to the archiver. -archiver_list_spec=$lt_archiver_list_spec - -# A symbol stripping program. -STRIP=$lt_STRIP - -# Commands used to install an old-style archive. -RANLIB=$lt_RANLIB -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Whether to use a lock for old archive extraction. -lock_old_archive_extraction=$lock_old_archive_extraction - -# A C compiler. -LTCC=$lt_CC - -# LTCC compiler flags. -LTCFLAGS=$lt_CFLAGS - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration. -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair. -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# Transform the output of nm in a C name address pair when lib prefix is needed. -global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix - -# Specify filename containing input files for \$NM. -nm_file_list_spec=$lt_nm_file_list_spec - -# The root where to search for dependent libraries,and in which our libraries should be installed. -lt_sysroot=$lt_sysroot - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# Used to examine libraries when file_magic_cmd begins with "file". -MAGIC_CMD=$MAGIC_CMD - -# Must we lock files when doing compilation? -need_locks=$lt_need_locks - -# Manifest tool. -MANIFEST_TOOL=$lt_MANIFEST_TOOL - -# Tool to manipulate archived DWARF debug symbol files on Mac OS X. -DSYMUTIL=$lt_DSYMUTIL - -# Tool to change global to local symbols on Mac OS X. -NMEDIT=$lt_NMEDIT - -# Tool to manipulate fat objects and archives on Mac OS X. -LIPO=$lt_LIPO - -# ldd/readelf like tool for Mach-O binaries on Mac OS X. -OTOOL=$lt_OTOOL - -# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. -OTOOL64=$lt_OTOOL64 - -# Old archive suffix (normally "a"). -libext=$libext - -# Shared library suffix (normally ".so"). -shrext_cmds=$lt_shrext_cmds - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at link time. -variables_saved_for_relink=$lt_variables_saved_for_relink - -# Do we need the "lib" prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Library versioning type. -version_type=$version_type - -# Shared library runtime path variable. -runpath_var=$runpath_var - -# Shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Permission mode override for installation of shared libraries. -install_override_mode=$lt_install_override_mode - -# Command to use after installation of a shared archive. -postinstall_cmds=$lt_postinstall_cmds - -# Command to use after uninstallation of a shared archive. -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# As "finish_cmds", except a single script fragment to be evaled but -# not shown. -finish_eval=$lt_finish_eval - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Compile-time system search path for libraries. -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries. -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - - -# The linker used to build libraries. -LD=$lt_LD - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# Commands used to build an old-style archive. -old_archive_cmds=$lt_old_archive_cmds - -# A language specific compiler. -CC=$lt_compiler - -# Is the compiler the GNU compiler? -with_gcc=$GCC - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc - -# Whether or not to disallow shared libs when runtime libs are static. -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec - -# Whether the compiler copes with passing no objects directly. -compiler_needs_object=$lt_compiler_needs_object - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds - -# Commands used to build a shared archive. -archive_cmds=$lt_archive_cmds -archive_expsym_cmds=$lt_archive_expsym_cmds - -# Commands used to build a loadable module if different from building -# a shared archive. -module_cmds=$lt_module_cmds -module_expsym_cmds=$lt_module_expsym_cmds - -# Whether we are building with GNU ld or not. -with_gnu_ld=$lt_with_gnu_ld - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag - -# Flag that enforces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec - -# Whether we need a single "-rpath" flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator - -# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes -# DIR into the resulting binary. -hardcode_direct=$hardcode_direct - -# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes -# DIR into the resulting binary and the resulting library dependency is -# "absolute",i.e impossible to change by setting \${shlibpath_var} if the -# library is relocated. -hardcode_direct_absolute=$hardcode_direct_absolute - -# Set to "yes" if using the -LDIR flag during linking hardcodes DIR -# into the resulting binary. -hardcode_minus_L=$hardcode_minus_L - -# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR -# into the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var - -# Set to "yes" if building a shared library automatically hardcodes DIR -# into the library and all subsequent libraries and executables linked -# against it. -hardcode_automatic=$hardcode_automatic - -# Set to yes if linker adds runtime paths of dependent libraries -# to runtime path list. -inherit_rpath=$inherit_rpath - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs - -# Set to "yes" if exported symbols are required. -always_export_symbols=$always_export_symbols - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms - -# Commands necessary for linking programs (against libraries) with templates. -prelink_cmds=$lt_prelink_cmds - -# Commands necessary for finishing linking programs. -postlink_cmds=$lt_postlink_cmds - -# Specify filename containing input files. -file_list_spec=$lt_file_list_spec - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action - -# ### END LIBTOOL CONFIG - -_LT_EOF - - case $host_os in - aix3*) - cat <<\_LT_EOF >> "$cfgfile" -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the problems -# vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -_LT_EOF - ;; - esac - - -ltmain="$ac_aux_dir/ltmain.sh" - - - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - if test x"$xsi_shell" = xyes; then - sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ -func_dirname ()\ -{\ -\ case ${1} in\ -\ */*) func_dirname_result="${1%/*}${2}" ;;\ -\ * ) func_dirname_result="${3}" ;;\ -\ esac\ -} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_basename ()$/,/^} # func_basename /c\ -func_basename ()\ -{\ -\ func_basename_result="${1##*/}"\ -} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ -func_dirname_and_basename ()\ -{\ -\ case ${1} in\ -\ */*) func_dirname_result="${1%/*}${2}" ;;\ -\ * ) func_dirname_result="${3}" ;;\ -\ esac\ -\ func_basename_result="${1##*/}"\ -} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ -func_stripname ()\ -{\ -\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ -\ # positional parameters, so assign one to ordinary parameter first.\ -\ func_stripname_result=${3}\ -\ func_stripname_result=${func_stripname_result#"${1}"}\ -\ func_stripname_result=${func_stripname_result%"${2}"}\ -} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ -func_split_long_opt ()\ -{\ -\ func_split_long_opt_name=${1%%=*}\ -\ func_split_long_opt_arg=${1#*=}\ -} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ -func_split_short_opt ()\ -{\ -\ func_split_short_opt_arg=${1#??}\ -\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ -} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ -func_lo2o ()\ -{\ -\ case ${1} in\ -\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ -\ *) func_lo2o_result=${1} ;;\ -\ esac\ -} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_xform ()$/,/^} # func_xform /c\ -func_xform ()\ -{\ - func_xform_result=${1%.*}.lo\ -} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_arith ()$/,/^} # func_arith /c\ -func_arith ()\ -{\ - func_arith_result=$(( $* ))\ -} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_len ()$/,/^} # func_len /c\ -func_len ()\ -{\ - func_len_result=${#1}\ -} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - -fi - -if test x"$lt_shell_append" = xyes; then - sed -e '/^func_append ()$/,/^} # func_append /c\ -func_append ()\ -{\ - eval "${1}+=\\${2}"\ -} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ -func_append_quoted ()\ -{\ -\ func_quote_for_eval "${2}"\ -\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ -} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - # Save a `func_append' function call where possible by direct use of '+=' - sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -else - # Save a `func_append' function call even when '+=' is not available - sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -fi - -if test x"$_lt_function_replace_fail" = x":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 -$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} -fi - - - mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - - ;; - - esac -done # for ac_tag - - -as_fn_exit 0 -_ACEOF -ac_clean_files=$ac_clean_files_save - -test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit 1 -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - diff --git a/configure.ac b/configure.ac index a999c908..01ecd950 100755..100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,7 @@ AC_PREREQ(2.60) -AC_INIT(connman, 1.29) +AC_INIT(connman, 1.35) + +AC_CONFIG_MACRO_DIR([m4]) AM_INIT_AUTOMAKE([foreign subdir-objects color-tests]) AC_CONFIG_HEADERS([config.h]) @@ -31,6 +33,8 @@ m4_ifdef([AC_LIBTOOL_TAGS], [AC_LIBTOOL_TAGS([])]) AC_DISABLE_STATIC AC_PROG_LIBTOOL +gl_CONFIGMAKE_PREP + AC_ARG_ENABLE(optimization, AC_HELP_STRING([--disable-optimization], [disable code optimization through compiler]), [ if (test "${enableval}" = "no"); then @@ -293,10 +297,33 @@ if (test -n "${path_systemdunit}"); then fi AM_CONDITIONAL(SYSTEMD, test -n "${path_systemdunit}") -PKG_CHECK_MODULES(XTABLES, xtables >= 1.4.11, dummy=yes, - AC_MSG_ERROR(Xtables library is required)) -AC_SUBST(XTABLES_CFLAGS) -AC_SUBST(XTABLES_LIBS) +AC_ARG_WITH(firewall, AC_HELP_STRING([--with-firewall=TYPE], + [specify which firewall type is used iptables or nftables [default=iptables]]), + [firewall_type=${withval}], + [firewall_type="iptables"]) + +if (test "${firewall_type}" != "iptables" -a \ + "${firewall_type}" != "nftables"); then + AC_MSG_ERROR(neither nftables nor iptables support enabled) +fi + +found_iptables="no" +if (test "${firewall_type}" = "iptables"); then + PKG_CHECK_MODULES(XTABLES, xtables >= 1.4.11, [found_iptables="yes"], + AC_MSG_ERROR(Xtables library is required)) + AC_SUBST(XTABLES_CFLAGS) + AC_SUBST(XTABLES_LIBS) +fi +AM_CONDITIONAL(XTABLES, test "${found_iptables}" != "no") + +found_nftables="no" +if (test "${firewall_type}" = "nftables"); then + PKG_CHECK_MODULES(NFTABLES, [libnftnl >= 1.0.4 libmnl >= 1.0.0], [found_nftables="yes"], + AC_MSG_ERROR([libnftnl >= 1.0.4 or libmnl >= 1.0.0 not found])) + AC_SUBST(NFTABLES_CFLAGS) + AC_SUBST(NFTABLES_LIBS) +fi +AM_CONDITIONAL(NFTABLES, test "${found_nftables}" != "no") AC_ARG_ENABLE(test, AC_HELP_STRING([--enable-test], [enable test/example scripts]), [enable_test=${enableval}]) @@ -345,6 +372,11 @@ AC_ARG_ENABLE(wifi, AC_HELP_STRING([--disable-wifi], [enable_wifi=${enableval}]) AM_CONDITIONAL(WIFI, test "${enable_wifi}" != "no") +AC_ARG_ENABLE(iwd, AC_HELP_STRING([--enable-iwd], + [enable iwd support]), + [enable_iwd=${enableval}]) +AM_CONDITIONAL(IWD, test "${enable_iwd}" = "yes") + AC_ARG_ENABLE(bluetooth, AC_HELP_STRING([--disable-bluetooth], [disable Bluetooth support]), [enable_bluetooth=${enableval}]) diff --git a/doc/agent-api.txt b/doc/agent-api.txt index 2ddd19a6..aa7271d4 100755 --- a/doc/agent-api.txt +++ b/doc/agent-api.txt @@ -119,7 +119,7 @@ Fields string Name string PreviousPassphrase The previous passphrase successfully saved, i.e. - which lead to a successfull connection. This field is + which led to a successfull connection. This field is provided as an informational argument when connecting with it does not work anymore, for instance when it has been changed on the AP. Such argument appears when @@ -166,10 +166,10 @@ Arguments string Type would be the network name or SSID. All "mandatory" fields must be returned, while the - "optional" can be returned if available. + "optional" ones can be returned if available. Nothing needs to be returned for "informational", as it - is here only to provide an information so a value is + is here only to provide an information. A value is attached to it. array{string} Alternates diff --git a/doc/config-format.txt b/doc/config-format.txt index b16f4e43..ed3123aa 100755 --- a/doc/config-format.txt +++ b/doc/config-format.txt @@ -83,6 +83,16 @@ The following options are valid if Type is "wifi" passphrase. The PrivateKeyPassphrase field is ignored when this field is set to fsid. - Identity: Identity string for EAP. +- AnonymousIdentity: Anonymous Identity string for EAP. +- SubjectMatch: Substring to be matched against the subject of the + authentication server certificate for EAP. +- AltSubjectMatch: Semicolon separated string of entries to be matched against + the alternative subject name of the authentication server certificate for EAP. +- DomainSuffixMatch: Constraint for server domain name. If set, this FQDN is + used as a suffix match requirement for the authentication server certificate + for EAP. +- DomainMatch: This FQDN is used as a full match requirement for the + authentication server certificate for EAP. - Phase2: Phase2 (inner authentication with TLS tunnel) authentication method. Prefix the value with "EAP-" to indicate the usage of an EAP-based inner authentication method (should only be used with EAP = TTLS). diff --git a/doc/connman-service.config.5.in b/doc/connman-service.config.5.in new file mode 100644 index 00000000..535c626c --- /dev/null +++ b/doc/connman-service.config.5.in @@ -0,0 +1,197 @@ +.\" connman-service.config(5) manual page +.\" +.\" Copyright (C) 2015 Intel Corporation +.\" +.TH "service-name.config" "5" "2015-10-15" "" +.SH NAME +service-name.config \- ConnMan service provisioning file +.SH SYNOPSIS +.B @storagedir@/\fIservice-name\fB.config +.SH DESCRIPTION +.P +\fIConnMan\fP's services are configured with so called +"\fBprovisioning files\fP" which reside under \fI@storagedir@/\fP. +The files can be named anything, as long as they end in \fB.config\fP. +The provisioning files can be used to configure for example secured +wireless access points which need complex authentication, for example +eduroam, or for static IPs and so on. Each provisioning file can be +used for multiple services at once. +.SH "FILE FORMAT" +.P +The configuration file format is key file format. +It consists of sections (groups) of key-value pairs. +Lines beginning with a '#' and blank lines are considered comments. +Sections are started by a header line containing the section enclosed +in '[' and ']', and ended implicitly by the start of the next section +or the end of the file. Each key-value pair must be contained in a section. +.P +Description of sections and available keys follows: +.SS [global] +This section is optional, and can be used to describe the actual file. The +two allowed fields for this section are: +.TP +.BI Name= name +Name of the network. +.TP +.BI Description= description +Description of the network. +.SS [service_*] +Each provisioned service must start with a [service_*] tag, with * replaced +by an unique name within the file. +The allowed fields are: +.TP +.B Type=ethernet \fR|\fB wifi +Mandatory. Other types than ethernet or wifi are not supported. +.TP +.BI IPv4=off \ \fR|\ dhcp\ \fR|\ network / netmask / gateway +IPv4 settings for the service. If set to \fBoff\fP, IPv4 won't be used. +If set to \fBdhcp\fP, dhcp will be used to obtain the network settings. +\fInetmask\fP can be specified as length of the mask rather than the +mask itself. The gateway can be omitted when using a static IP. +.TP +.BI IPv6=off \ \fR|\ auto\ \fR|\ network / prefixlength / gateway +IPv6 settings for the service. If set to \fBoff\fP, IPv6 won't be used. +If set to \fBauto\fP, settings will be obtained from the network. +.TP +.B IPv6.Privacy=disabled \fR|\fB enabled \fR|\fB preferred +IPv6 privacy settings as per RFC3041. +.TP +.BI MAC= address +MAC address of the interface to be used. If not specified, the first +found interface is used. Must be in format ab:cd:ef:01:23:45. +.TP +.BI Nameservers= servers +Comma separated list of nameservers. +.TP +.BI SearchDomains= domains +Comma separated list of DNS search domains. +.TP +.BI Timeservers= servers +Comma separated list of timeservers. +.TP +.BI Domain= domain +Domain name to be used. +.TP +The following keys can only be used for wireless networks: +.TP +.BI Name= name +A string representation of an network SSID. If the SSID field is +present, the Name field is ignored. If the SSID field is not present, +this field is mandatory. +.TP +.BI SSID= ssid +SSID: A hexadecimal representation of an 802.11 SSID. Use this format to +encode special characters including starting or ending spaces. +.TP +.BI Passphrase= passphrase +RSN/WPA/WPA2 Passphrase. +.TP +.BI Security= type +The security type of the network. Possible values are \fBpsk\fP +(WPA/WPA2 PSK), \fBieee8021x\fP (WPA EAP), \fBnone\fP and \fBwep\fP. +When not set, the default value is \fBieee8021x\fP if an EAP type is +configured, \fBpsk\fP if a passphrase is present and \fBnone\fP otherwise. +.TP +.B Hidden=true \fR|\fB false +If set to \fBtrue\fP, then this AP is hidden. If missing or set to +\fBfalse\fP, then AP is not hidden. +.TP +.B EAP=tls \fR|\fB ttls \fR|\fB peap +EAP type to use. Only \fBtls\fP, \fBttls\fP and \fBpeap\fP are supported. +.TP +.BI CACertFile= file +Path to the CA certificate file. Only PEM and DER formats are supported. +.TP +.BI PrivateKeyFile= file +Path to the private key file. Only PEM, DER and PFX formats are supported. +.TP +.BI PrivateKeyPassphrase= passphrase +Passphrase of the private key. +.TP +.B PrivateKeyPassphraseType=fsid +If specified, use the private key's fsid as the passphrase, and ignore the +PrivateKeyPassphrase field. +.TP +.BI Identity= identity +Identity string for EAP. +.TP +.BI AnonymousIdentity= identity +Anonymous identity string for EAP. +.TP +.BI Phase2= type +Inner authentication type with for \fBEAP=tls\fP or \fBEAP=ttls\fP. Prefix +the value with \fBEAP-\fP to indicate usage of EAP-based authentication +method (should only be used with \fBEAP=ttls\fP). +.SH "EXAMPLE" +.SS Eduroam +This is a configuration file for eduroam networks. This file could for +example be @storagedir@/eduroam.config. Your university's exact +settings might be different. +.PP +.nf +[service_eduroam] +Type = wifi +Name = eduroam +EAP = peap +Phase2 = MSCHAPV2 +CACertFile = /etc/ssl/certs/UNIV_CA.crt +.fi +.SS Complex networking +This is a configuration file for a network providing EAP-TLS, EAP-TTLS and +EAP-PEAP services. The respective SSIDs are tls_ssid, ttls_ssid and peap_ssid +and the file name could be @storagedir@/complex.config. +.PP +Please note that the SSID entry is for hexadecimal encoded SSID (e.g. "SSID = +746c735f73736964"). If your SSID does not contain any exotic character then +you should use the Name entry instead (e.g. "Name = tls_ssid"). +.PP +.nf +[global] +Name = Example +Description = Example network configuration + +[service_tls] +Type = wifi +SSID = 746c735f73736964 +EAP = tls +CACertFile = /home/user/.certs/ca.pem +ClientCertFile = /home/user/devlp/.certs/client.pem +PrivateKeyFile = /home/user/.certs/client.fsid.pem +PrivateKeyPassphraseType = fsid +Identity = user + +[service_ttls] +Type = wifi +Name = ttls_ssid +EAP = ttls +CACertFile = /home/user/.cert/ca.pem +Phase2 = MSCHAPV2 +Identity = user + +[service_peap] +Type = wifi +Name = peap_ssid +EAP = peap +CACertFile = /home/user/.cert/ca.pem +Phase2 = MSCHAPV2 +Identity = user + +[service_home_ethernet] +Type = ethernet +IPv4 = 192.168.1.42/255.255.255.0/192.168.1.1 +IPv6 = 2001:db8::42/64/2001:db8::1 +MAC = 01:02:03:04:05:06 +Nameservers = 10.2.3.4,192.168.1.99 +SearchDomains = my.home,isp.net +Timeservers = 10.172.2.1,ntp.my.isp.net +Domain = my.home + +[service_home_wifi] +Type = wifi +Name = my_home_wifi +Passphrase = password +IPv4 = 192.168.2.2/255.255.255.0/192.168.2.1 +MAC = 06:05:04:03:02:01 +.fi +.SH "SEE ALSO" +.BR connman (8) diff --git a/doc/connman-vpn-provider.config.5.in b/doc/connman-vpn-provider.config.5.in new file mode 100644 index 00000000..ef704352 --- /dev/null +++ b/doc/connman-vpn-provider.config.5.in @@ -0,0 +1,432 @@ +.\" connman-vpn-provider.config(5) manual page +.\" +.\" Copyright (C) 2015 Intel Corporation +.\" +.TH "connection_name.config" "5" "2015-10-15" "" +.SH NAME +connection_name.config \- ConnMan vpn connection provisioning file +.SH SYNOPSIS +.B @vpn_storagedir@/\fIconnection-name\fB.config +.SH DESCRIPTION +.P +\fIConnMan\fP's vpn connections are configured with so called +"\fBprovisioning files\fP" which reside under \fI@vpn_storagedir@/\fP. +The files can be named anything, as long as they contain only printable +ascii characers, for example letters, numbers and underscores. The file +must end with \fB.config\fP. Each VPN connection requires a provisioning +file, but multiple connections can be specified in the same file. +.SH "FILE FORMAT" +.P +The configuration file format is key file format. +It consists of sections (groups) of key-value pairs. +Lines beginning with a '#' and blank lines are considered comments. +Sections are started by a header line containing the section enclosed +in '[' and ']', and ended implicitly by the start of the next section +or the end of the file. Each key-value pair must be contained in a section. +.P +Description of sections and available keys follows: +.SS [global] +This section is optional, and can be used to describe the actual file. The +two allowed fields for this section are: +.TP +.BI Name= name +Name of the network. +.TP +.BI Description= description +Description of the network. +.SS [provider_*] +Each provisioned connection must start with a [provider_*] tag, +with * replaced by an unique name within the file. +The following fields are mandatory: +.TP +.B Type=OpenConnect \fR|\fB OpenVPN \fR|\fB VPNC \fR|\fB L2TP \fR|\fB PPTP +Specifies the VPN type. +.TP +.BI Host= IP +VPN server IP address. +.TP +.BI Domain= domain +Domain name for the VPN service. +.TP +The following field is optional: +.TP +.BI Networks= network / netmask / gateway [,...] +Networks behind the VPN. If all traffic should go through the VPN, this +field can be left out. The gateway can be left out. For IPv6 addresses, +only the prefix length is accepted as the netmask. +.SS OpenConnect +The following keys can be used for \fBopenconnect\fP(8) networks: +.TP +.BI OpenConnect.ServerCert= cert +SHA1 fingerprint of the VPN server's certificate. +.TP +.BI OpenConnect.CACert= cert +File containing additional CA certificates in addition to the system +trusted certificate authorities. +.TP +.BI OpenConnect.ClientCert= cert +Client certificate, if needed by web authentication. +.TP +.BI OpenConnect.MTU= mtu +Request \fImtu\fP from the server as the MTU of the tunnel. +.TP +.BI OpenConnect.Cookie= cookie +The resulting cookie of the authentication process. As the cookie lifetime +can be very limited, it does not usually make sense to add it into the +configuration file. +.TP +.BI OpenConnect.VPNHost= host +The final VPN server to use after completing the web authentication. Only +usable for extremely simple VPN configurations and should normally be set +only via the VPN Agent API. +.PP +If \fBOpenConnect.Cookie\fP, \fBOpenConnect.VPNHost\fP or +\fBOpenConnect.ServerCert\fP are missing, the VPN Agent will be contacted +to supply the information. +.SS OpenVPN +The following keys are mandatory for \fBopenvpn\fP(8) networks: +.TP +.BI OpenVPN.CACert= cert +Certificate authority file. +.TP +.BI OpenVPN.Cert= cert +Local peer's signed certificate. +.TP +.BI OpenVPN.Cert= cert +Local peer's signed certificate. +.TP +.BI OpenVPN.Key= key +Local peer's private key. +.TP +The following keys are optional for \fBopenvpn\fP(8) networks: +.TP +.BI OpenVPN.MTU= mtu +MTU of the tunnel. +.TP +.B OpenVPN.NSCertType=client \fR|\fB server +Peer certificate type, either \fBclient\fP or \fBserver\fP. +.TP +.BI OpenVPN.Protocol= protocol +Use \fIprotocol\fP. +.TP +.BI OpenVPN.Port= port +TCP/UDP port number. +.TP +.B OpenVPN.AuthUserPass=true \fR|\fB false +Authenticate on the server using username/password. +.TP +.BI OpenVPN.AskPass= file +Get certificate password from \fIfile\fP. +.TP +.B OpenVPN.AuthNoCache=true \fR|\fB false +Don't cache AskPass or AuthUserPass value. +.TP +.BI OpenVPN.TLSRemote= name +Accept connections only from a host with X509 name or common +name equal to \fIname\fP. +.TP +.BI OpenVPN.TLSAuth= file +Use \fIfile\fP for HMAC authentication. +.TP +.BI OpenVPN.TLSAuthDir= direction +Use \fIdirection\fP for HMAC authentication direction. +.TP +.BI OpenVPN.Cipher= cipher +Use \fIcipher\fP as the cipher. +.TP +.B OpenVPN.Auth=true \fR|\fB false +Use HMAC authentication. +.TP +.B OpenVPN.CompLZO=yes \fR|\fB no \fR|\fB adaptive +Use fast LZO compression. +.TP +.B OpenVPN.RemoteCertTls=client \fR|\fB server +Require that remote certificate is signed based on RFC3280 TLS rules. +.TP +.BI OpenVPN.ConfigFile= file +OpenVPN config file for extra options not supported by the OpenVPN plugin. +.TP +.BI OpenVPN.DeviceType= tun \fR|\fB tap +Whether the VPN should use a tun (OSI layer 3) or tap (OSI layer 2) device. +Defaults to tun if omitted. +.SS VPNC +The following key is mandatory for \fBvpnc\fP(8) networks: +.TP +.BI VPNC.IPSec.ID= id +Group username. +.TP +The following keys are optional for \fBvpnc\fP(8) networks: +.TP +.BI VPNC.IPSec.Secret= secret +Group password. +.TP +.BI VPNC.XAuth.Username= username +Username. +.TP +.BI VPNC.XAuth.Password= password +Password. +.TP +.BI VPNC.IKE.Authmode= mode +IKE authentication mode. +.TP +.BI VPNC.IKE.DHGroup= group +IKE DH group name. +.TP +.BI VPNC.PFS= group +Diffie-Hellman group for perfect forward secrecy. +.TP +.BI VPNC.Domain= domain +Domain name for authentication. +.TP +.BI VPNC.Vendor= vendor +Vendor of the IPSec gateway. +.TP +.BI VPNC.LocalPort= port +Local ISAKMP port number to use. +.TP +.BI VPNC.CiscoPort= port +Cisco UDP Encapsulation Port. +.TP +.BI VPNC.AppVersion= version +Application version to report. +.TP +.BI VPNC.NATTMode= mode +NAT-Traversal Method to use. +.TP +.BI VPNC.DPDTimeout= timeout +DPD idle timeout. +.TP +.B VPNC.SingleDES=true \fR|\fB false +Enable single DES encryption. +.TP +.B VPNC.NoEncryption=true \fR|\fB false +Enable usage of no encryption for data traffic. +.TP +.BI VPNC.DeviceType= tun \fR|\fB tap +Whether the VPN should use a tun (OSI layer 3) or tap (OSI layer 2) device. +Defaults to tun if omitted. +.SS L2TP +The following keys are optional for l2tp (\fBxl2tp.conf\fP(5), \fBpppd\fP(8)) +networks: +.TP +.BI L2TP.User= user +L2TP username. +.TP +.BI L2TP.Password= password +L2TP password. +.TP +.BI L2TP.BPS= bps +Max bandwidth to use. +.TP +.BI L2TP.TXBPS= bps +Max transmit bandwidth to use. +.TP +.BI L2TP.RXBPS= bps +Max receive bandwidth to use. +.TP +.B L2TP.LengthBit=yes \fR|\fB no +Use length bit. +.TP +.B L2TP.Challenge=yes \fR|\fB no +Use challenge authentication. +.TP +.BI L2TP.DefaultRoute= route +Add \fIroute\fP to the routing tables. +.TP +.B L2TP.FlowBit=yes \fR|\fB no +Use seq numbers. +.TP +.BI L2TP.TunnelRWS= size +Window size. +.TP +.B L2TP.Exclusive=yes \fR|\fB no +Use only one control channel. +.TP +.B L2TP.Redial=yes \fR|\fB no +Redial if disconnected. +.TP +.BI L2TP.RedialTimeout= timeout +Redial timeout. +.TP +.BI L2TP.MaxRedials= count +Maximum amount of redial tries. +.TP +.B L2TP.RequirePAP=yes \fR|\fB no +Require PAP. +.TP +.B L2TP.RequireCHAP=yes \fR|\fB no +Require CHAP. +.TP +.B L2TP.ReqAuth=yes \fR|\fB no +Require authentication. +.TP +.B L2TP.AccessControl=yes \fR|\fB no +Use access control. +.TP +.BI L2TP.AuthFile= file +Authentication file location. +.TP +.BI L2TP.ListenAddr= address +Listen address. +.TP +.B L2TP.IPSecSaref=yes \fR|\fB no +Listen address. +.TP +.BI L2TP.Port= port +UDP port used. +.TP +.BI PPPD.EchoFailure= count +Echo failure count. +.TP +.BI PPPD.EchoFailure= count +Dead peer check count. +.TP +.BI PPPD.EchoInterval= interval +Dead peer check interval. +.TP +.BI PPPD.Debug= level +Debug level. +.TP +.B PPPD.RefuseEAP=true \fR|\fB false +Refuse EAP authentication. +.TP +.B PPPD.RefusePAP=true \fR|\fB false +Refuse PAP authentication. +.TP +.B PPPD.RefuseCHAP=true \fR|\fB false +Refuse CHAP authentication. +.TP +.B PPPD.RefuseMSCHAP=true \fR|\fB false +Refuse MSCHAP authentication. +.TP +.B PPPD.RefuseMSCHAP2=true \fR|\fB false +Refuse MSCHAPv2 authentication. +.TP +.B PPPD.NoBSDComp=true \fR|\fB false +Disable BSD compression. +.TP +.B PPPD.NoPcomp=true \fR|\fB false +Disable protocol compression. +.TP +.B PPPD.UseAccomp=true \fR|\fB false +Disable Access/Control compression. +.TP +.B PPPD.NoDeflate=true \fR|\fB false +Disable deflate compression. +.TP +.B PPPD.ReqMPPE=true \fR|\fB false +Require the use of MPPE. +.TP +.B PPPD.ReqMPPE40=true \fR|\fB false +Require the use of MPPE 40 bit. +.TP +.B PPPD.ReqMPPE128=true \fR|\fB false +Require the use of MPPE 128 bit. +.TP +.B PPPD.ReqMPPEStateful=true \fR|\fB false +Allow MPPE to use stateful mode. +.TP +.B PPPD.NoVJ=true \fR|\fB false +No Van Jacobson compression. +.SS PPTP +The following keys are optional for \fBpptp\fP(8) (see also \fBpppd\fP(8)) +networks: +.TP +.BI PPTP.User= username +Username. +.TP +.BI PPTP.Password= password +Password. +.TP +.BI PPPD.EchoFailure= count +Echo failure count. +.TP +.BI PPPD.EchoFailure= count +Dead peer check count. +.TP +.BI PPPD.EchoInterval= interval +Dead peer check interval. +.TP +.BI PPPD.Debug= level +Debug level. +.TP +.B PPPD.RefuseEAP=true \fR|\fB false +Refuse EAP authentication. +.TP +.B PPPD.RefusePAP=true \fR|\fB false +Refuse PAP authentication. +.TP +.B PPPD.RefuseCHAP=true \fR|\fB false +Refuse CHAP authentication. +.TP +.B PPPD.RefuseMSCHAP=true \fR|\fB false +Refuse MSCHAP authentication. +.TP +.B PPPD.RefuseMSCHAP2=true \fR|\fB false +Refuse MSCHAPv2 authentication. +.TP +.B PPPD.NoBSDComp=true \fR|\fB false +Disable BSD compression. +.TP +.B PPPD.NoPcomp=true \fR|\fB false +Disable protocol compression. +.TP +.B PPPD.UseAccomp=true \fR|\fB false +Disable Access/Control compression. +.TP +.B PPPD.NoDeflate=true \fR|\fB false +Disable deflate compression. +.TP +.B PPPD.ReqMPPE=true \fR|\fB false +Require the use of MPPE. +.TP +.B PPPD.ReqMPPE40=true \fR|\fB false +Require the use of MPPE 40 bit. +.TP +.B PPPD.ReqMPPE128=true \fR|\fB false +Require the use of MPPE 128 bit. +.TP +.B PPPD.ReqMPPEStateful=true \fR|\fB false +Allow MPPE to use stateful mode. +.TP +.B PPPD.NoVJ=true \fR|\fB false +No Van Jacobson compression. + +.SH "EXAMPLE" +This is a configuration file for a VPN providing L2TP, OpenVPN and +OpenConnect services. It could, for example, be in the file +.B @vpn_storagedir@/example.config\fR. +.PP +.nf +[global] +Name = Example +Description = Example VPN configuration + +[provider_l2tp] +Type = L2TP +Name = Connection to corporate network +Host = 1.2.3.4 +Domain = corporate.com +Networks = 10.10.30.0/24 +L2TP.User = username + +[provider_openconnect] +Type = OpenConnect +Name = Connection to corporate network using Cisco VPN +Host = 7.6.5.4 +Domain = corporate.com +Networks = 10.10.20.0/255.255.255.0/10.20.1.5,192.168.99.1/24,2001:db8::1/64 +OpenConnect.ServerCert = 263AFAB4CB2E6621D12E90182008AEF44AEFA031 +OpenConnect.CACert = /etc/certs/certificate.p12 + +[provider_openvpn] +Type = OpenVPN +Name = Connection to corporate network using OpenVPN +Host = 3.2.5.6 +Domain = my.home.network +OpenVPN.CACert = /etc/certs/cacert.pem +OpenVPN.Cert = /etc/certs/cert.pem +OpenVPN.Key = /etc/certs/cert.key +.fi +.SH "SEE ALSO" +.BR connmanctl (1),\ connman (8),\ connman-vpn (8) diff --git a/doc/connman-vpn.8.in b/doc/connman-vpn.8.in new file mode 100644 index 00000000..6130b3b8 --- /dev/null +++ b/doc/connman-vpn.8.in @@ -0,0 +1,62 @@ +.\" connman-vpn(8) manual page +.\" +.\" Copyright (C) 2015 Intel Corporation +.\" +.TH CONNMAN-VPN "8" "2015-10-15" +.SH NAME +ConnMan-VPN \- VPN management daemon +.SH SYNOPSIS +.B connman-vpnd +.RB [\| \-\-version \||\| \-\-help \|] +.PP +.B connman-vpnd +.RB [\| \-c +.IR file \|] +.RB [\| \-d\ [\c +.IR file [,...]\|]\|] +.RB [\| \-p +.IR plugin [,...]\|] +.RB [\| \-P +.IR plugin [,...]\|] +.RB [\| \-n \|] +.RB [\| \-r \|] +.SH DESCRIPTION +The \fIConnMan-VPN\fP provides a daemon for managing vpn connections together +with \fBconnmand\fP(8). The Connection Manager is designed to be slim and to +use as few resources as possible. The VPN daemon supports \fBopenconnect\fP(8), +\fBopenvpn\fP(8), \fBvpnc\fP(8) and L2TP/PPTP (\fBxl2tpd.conf\fP(5), +\fBpptp\fP(8), \fBpppd\fP(8)). +.P +.SH OPTIONS +The following options are supported: +.TP +.BR \-v ", " \-\-version +Print the ConnMan-VPN software version and exit. +.TP +.BR \-h ", " \-\-help +Print ConnMan-VPN's available options and exit. +.TP +.BI \-c\ file\fR,\ \fB\-\-config= \fIfile +Specify configuration file to set up various settings for ConnMan. If not +specified, the default value of \fI@sysconfdir@/connman/connman-vpn.conf\fP +is used. See \fBconnman-vpn.conf\fP(5) for more information on +configuration file. The use of config file is optional and sane default values +are used if config file is missing. +.TP +.BR \-d\ [ \fIfile [,...]],\ \-\-debug [= \fIfile [,...]] +Sets how much information ConnMan-VPN sends to the log destination (usually +syslog's "daemon" facility). If the file options are omitted, then debugging +information from all the source files are printed. If file options are +present, then only debug prints from that source file are printed. Example: +.PP + connman-vpnd --debug=vpn/vpn-provider.c,vpn/vpn-config.c +.TP +.BR \-n ", " \-\-nodaemon +Do not daemonize. This is useful for debugging, and directs log output to +the controlling terminal in addition to syslog. +.TP +.BR \-r ", " \-\-routes +Manage VPN routes instead of telling \fBconnmand\fP(8) to do it. +.SH SEE ALSO +.BR connmanctl (1), \ connman-vpn.conf (5), \c +.BR \ connman-vpn-provider.config (5), \ connmand (8) diff --git a/doc/connman-vpn.conf.5.in b/doc/connman-vpn.conf.5.in new file mode 100644 index 00000000..fcc4c692 --- /dev/null +++ b/doc/connman-vpn.conf.5.in @@ -0,0 +1,42 @@ +.\" connman-vpn.conf(5) manual page +.\" +.\" Copyright (C) 2015 Intel Corporation +.\" +.TH "connman-vpn.conf" "5" "2015-10-15" "" +.SH NAME +connman-vpn.conf \- ConnMan-VPN configuration file +.SH SYNOPSIS +.B @sysconfdir@/connman/connman-vpn.conf +.SH DESCRIPTION +.P +.B connman-vpn.conf +is a configuration file for ConnMan-VPN. The configuration file is +optional but it can be used to set up various aspects of ConnMan-VPN's +behavior. The location of the file may be changed through use of +the \fB\-\-config= \fRargument for \fBconnman-vpn\fP(8). +.SH "FILE FORMAT" +.P +The configuration file format is key file format. +It consists of sections (groups) of key-value pairs. +Lines beginning with a '#' and blank lines are considered comments. +Sections are started by a header line containing the section enclosed +in '[' and ']', and ended implicitly by the start of the next section +or the end of the file. Each key-value pair must be contained in a section. +.P +Description of sections and available keys follows: +.SS [General] +This section is the only mandatory section of the configuration file. +.TP +.BI InputRequestTimeout= secs +Set input request timeout. Default is 300 seconds. The request for inputs +like passphrase will timeout after certain amount of time. Use this setting +to increase the value in case of different user interface designs. +.SH "EXAMPLE" +The following example configuration sets InputRequestTimeout to 10 minutes. +.PP +.nf +[General] +InputRequestTimeout = 600 +.fi +.SH "SEE ALSO" +.BR connman (8), \ connman-vpn (8) diff --git a/doc/connman.8 b/doc/connman.8.in index 7297cf86..ddfba09b 100755..100644 --- a/doc/connman.8 +++ b/doc/connman.8.in @@ -1,14 +1,31 @@ .\" connman(8) manual page .\" -.\" Copyright (C) 2012 Intel Corporation +.\" Copyright (C) 2012,2015 Intel Corporation .\" -.TH CONNMAN "8" "21 August 2012" +.TH CONNMAN "8" "2015-10-15" .SH NAME ConnMan \- network management daemon .SH SYNOPSIS -.B connmand [\-\-version] | [\-\-help] +.B connmand +.RB [\| \-\-version \||\| \-\-help \|] .PP -.B connmand [\-\-config=<filename>] [\-\-debug=<file1>:<file2>:...] [\-\-device=<interface1>,<interface2>,...] [\-\-nodevice=<interface1>,<interface2>,..] [\-\-wifi=<driver1>,<driver2>,...] [\-\-plugin=<plugin1>,<plugin2>,...] [\-\-noplugin=<plugin1>,<plugin2>,...] [\-\-nodaemon] [\-\-nodnsproxy] +.B connmand +.RB [\| \-c +.IR file \|] +.RB [\| \-d\ [\c +.IR file [,...]\|]\|] +.RB [\| \-i +.IR interface [,...]\|] +.RB [\| \-I +.IR interface [,...]\|] +.RB [\| \-W +.IR driver [,...]\|] +.RB [\| \-p +.IR plugin [,...]\|] +.RB [\| \-P +.IR plugin [,...]\|] +.RB [\| \-n \|] +.RB [\| \-r \|] .SH DESCRIPTION The \fIConnMan\fP provides a daemon for managing internet connections within devices running the Linux operating system. The Connection Manager is @@ -23,57 +40,61 @@ use cases. .SH OPTIONS The following options are supported: .TP -.I "\-\-version" +.BR \-v ", " \-\-version Print the ConnMan software version and exit. .TP -.I "\-\-help" +.BR \-h ", " \-\-help Print ConnMan's available options and exit. .TP -.I "\-\-config=<filename>" +.BI \-c\ file\fR,\ \fB\-\-config= \fIfile Specify configuration file to set up various settings for ConnMan. If not -specified, the default value of '<SYSCONFDIR>/connman/main.conf' -is used; where <SYSCONFDIR> is dependent on your distribution (usually -it's /etc). See \fBconnman.conf\fP(5) for more information on configuration -file. The use of config file is optional and sane default values +specified, the default value of \fI@sysconfdir@/connman/main.conf\fP +is used. See \fBconnman.conf\fP(5) for more information on +configuration file. The use of config file is optional and sane default values are used if config file is missing. .TP -.I "\-\-debug=<file1>:<file2>:..." +.BR \-d\ [ \fIfile [,...]],\ \-\-debug [= \fIfile [,...]] Sets how much information ConnMan sends to the log destination (usually syslog's "daemon" facility). If the file options are omitted, then debugging information from all the source files are printed. If file options are -present, then only debug prints from that source file are printed. -Example: --debug=src/service.c:plugins/wifi.c +present, then only debug prints from that source file are printed. Example: +.PP + connmand --debug=src/service.c,plugins/wifi.c .TP -.I "\-\-device=<interface1>,<interface2>,..." +.BR \-i\ \fIinterface \fR[,...],\ \-\-device= \fIinterface \fR[,...] Only manage these network interfaces. By default all network interfaces are managed. .TP -.I "\-\-nodevice=<interface1>,<interface2>,..." +.BR \-I\ \fIinterface \fR[,...],\ \-\-nodevice= \fIinterface \fR[,...] Never manage these network interfaces. .TP -.I "\-\-plugin=<plugin1>,<plugin2>,..." +.BI \-p\ plugin \fR[,...],\ \fB\-\-plugin= plugin \fR[,...] Load these plugins only. The option can be a pattern containing "*" and "?" characters. .TP -.I "\-\-noplugin=<plugin1>,<plugin2>,..." +.BI \-P\ plugin \fR[,...],\ \fB\-\-noplugin= plugin \fR[,...] Never load these plugins. The option can be a pattern containing "*" and "?" characters. .TP -.I "\-\-wifi=<driver1>,<driver2>,..." -Wifi driver that WiFi/Supplicant should use. If omitted, then the value -of "nl80211,wext" is used by default. +.BI \-W\ driver \fR[,...],\ \fB\-\-wifi= driver \fR[,...] +Wifi driver that WiFi/Supplicant should use. If this flag is omitted, +then the value "nl80211,wext" is used by default. +.TP +.BR \-n ", " \-\-nobacktrace +Don't print out backtrace information. .TP -.I "\-\-nodaemon" +.BR \-n ", " \-\-nodaemon Do not daemonize. This is useful for debugging, and directs log output to the controlling terminal in addition to syslog. .TP -.I "\-\-nodnsproxy" +.BR \-r ", " \-\-nodnsproxy Do not act as a DNS proxy. By default ConnMan will direct all DNS traffic to itself by setting nameserver to 127.0.0.1 in \fBresolv.conf\fP(5) file. If this is not desired and you want that all programs call directly some -DNS server, then you can use the --nodnsproxy option. +DNS server, then you can use the \fB--nodnsproxy\fP option. If this option is used, then ConnMan is not able to cache the DNS queries because the DNS traffic is not going through ConnMan and that can cause some extra network traffic. .SH SEE ALSO -.BR connman.conf (5). +.BR connmanctl (1), \ connman.conf (5), \ connman-service.config (5), \c +.BR \ connman-vpn (8) diff --git a/doc/connman.conf.5 b/doc/connman.conf.5.in index c1ca75cc..fdc8e9ec 100755..100644 --- a/doc/connman.conf.5 +++ b/doc/connman.conf.5.in @@ -1,25 +1,19 @@ .\" connman.conf(5) manual page .\" -.\" Copyright (C) 2012 Intel Corporation +.\" Copyright (C) 2012,2015 Intel Corporation .\" -.TH "connman.conf" "5" "21 August 2012" "" +.TH "connman.conf" "5" "2015-10-15" "" .SH NAME main.conf \- ConnMan configuration file .SH SYNOPSIS -/etc/connman/main.conf -.br -or -.br -\fI<SYSCONFDIR>\fP/connman/main.conf -.br -where <SYSCONFDIR> depends on your distribution or build. +.B @sysconfdir@/connman/main.conf .SH DESCRIPTION .P -.I main.conf +.B main.conf is a configuration file for ConnMan. The configuration file is optional but it can be used to set up various aspects of ConnMan's behavior. The location of the file may be changed through use of -the "\-\-config=" argument for \fBconnman\fP (8). +the \fB\-\-config= \fRargument for \fBconnman\fP(8). .SH "FILE FORMAT" .P The configuration file format is key file format. @@ -33,47 +27,53 @@ Description of sections and available keys follows: .SS [General] This section is the only mandatory section of the configuration file. .TP -.B InputRequestTimeout=\fPsecs\fP +.BI InputRequestTimeout= secs Set input request timeout. Default is 120 seconds The request for inputs like passphrase will timeout after certain amount of time. Use this setting to increase the value in case of different user interface designs. .TP -.B BrowserLaunchTimeout=\fPsecs\fP +.BI BrowserLaunchTimeout= secs Set browser launch timeout. Default is 300 seconds The request for launching a browser for portal pages will timeout after certain amount of time. Use this setting to increase the value in case of different user interface designs. .TP -.B BackgroundScanning=\fPtrue|false\fP +.BI BackgroundScanning=true\ \fR|\fB\ false Enable background scanning. Default is true. Background scanning will start every 5 minutes unless the scan list is empty. In that case, a simple backoff mechanism starting from 10s up to 5 minutes will run. .TP -.B FallbackTimeservers=\fPserver1,server2,...\fP +.BI FallbackTimeservers= server\fR[,...] List of Fallback timeservers separated by ",". These timeservers are used for NTP sync when there are no timeserver set by the user or by the service. These can contain mixed combination of fully qualified domain names, IPv4 and IPv6 addresses. .TP -.B FallbackNameservers=\fPserver1,server2,...\fP +.BI FallbackNameservers= server\fR[,...] List of fallback nameservers separated by "," appended to the list of nameservers given by the service. The nameserver entries must be in numeric format, host names are ignored. .TP -.B DefaultAutoConnectTechnologies=\fPtechnology1,technology2,...\fP +.BI DefaultAutoConnectTechnologies= technology\fR[,...] List of technologies that are marked autoconnectable by default, separated by commas ",". The default value for this entry when empty is ethernet,wifi,cellular. Services that are automatically connected must have been set up and saved to storage beforehand. .TP -.B PreferredTechnologies=\fPtechnology1,technology2,...\fP +.BI AlwaysConnectedTechnologies= technology\fR[,...] +List of technoolgies which are always connected regardless +of PreferredTechnologies setting (AutoConnect = true). The +default value is empty and this feature is disabled unless +explicitely enabled in the config file. +.TP +.BI PreferredTechnologies= technology\fR[,...] List of preferred technologies from the most preferred one to the least preferred one separated by commas ",". Services of the listed technology type will be tried one @@ -86,19 +86,19 @@ of a preferred technology type in state 'online' will get the default route when compared to either a non-preferred type or a preferred type further down in the list. .TP -.B NetworkInterfaceBlacklist=\fPinterface1,interface2,...\fP +.BI NetworkInterfaceBlacklist= interface\fR[,...] List of blacklisted network interfaces separated by ",". Found interfaces will be compared to the list and will not be handled by connman, if their first characters match any of the list entries. Default value is vmnet,vboxnet,virbr,ifb. .TP -.B AllowHostnameUpdates=\fPtrue|false\fP +.BI AllowHostnameUpdates=true\ \fR|\fB\ false Allow connman to change the system hostname. This can happen for example if we receive DHCP hostname option. Default value is true. .TP -.B SingleConnectedTechnology=\fPtrue|false\fP +.BI SingleConnectedTechnology=true\ \fR|\fB\ false Keep only a single connected technology at any time. When a new service is connected by the user or a better one is found according to PreferredTechnologies, the new service is kept connected and all @@ -110,7 +110,7 @@ user will be used until going out of network coverage. With this setting enabled applications will notice more network breaks than normal. Default value is false. .TP -.B TetheringTechnologies=\fPtechnology1,technology2,...\fP +.BI TetheringTechnologies= technology\fR[,...] List of technologies that are allowed to enable tethering separated by ",". The default value is wifi,bluetooth,gadget. Only those technologies listed here are used for tethering. If one wants to tether ethernet, @@ -122,14 +122,37 @@ normal operation of these networks. Due to this ethernet is not tethered by default. Do not activate ethernet tethering unless you really know what you are doing. .TP -.B PersistentTetheringMode=\fPtrue|false\fP +.BI PersistentTetheringMode=true\ \fR|\fB\ false Restore earlier tethering status when returning from offline mode, re-enabling a technology, and after restarts and reboots. Default value is false. .TP -.B Enable6to4=\fPtrue|false\fP +.BI Enable6to4=true\ \fR|\fB\ false Automatically enable Anycast 6to4 if possible. This is not recommended, as the use of 6to4 will generally lead to a severe degradation of connection quality. See RFC6343. Default value is false (as recommended by RFC6343 section 4.1). +.TP +.BI VendorClassID= string +Set DHCP option 60 (Vendor Class ID) to the given string. This option can +be used by DHCP servers to identify specific clients without having to +rely on MAC address ranges, etc +.TP +.BI EnableOnlineCheck=true\ \fR|\fB\ false +Enable or disable use of HTTP GET as on online status check. +When a service is in a READY state, and is selected as default, +ConnMan will issue an HTTP GET request to verify that end-to-end +connectivity is successful. Only then the service will be +transitioned to ONLINE state. +If this setting is false, the default service will remain in READY state. +Default value is true. +.SH "EXAMPLE" +The following example configuration disables hostname updates and enables +ethernet tethering. +.PP +.nf +[General] +AllowHostnameUpdates = false +TetheringTechnologies = ethernet,wifi,bluetooth,gadget +.fi .SH "SEE ALSO" -.BR Connman (8) +.BR connman (8) diff --git a/doc/connmanctl.1 b/doc/connmanctl.1 deleted file mode 100644 index b71c6e62..00000000 --- a/doc/connmanctl.1 +++ /dev/null @@ -1,190 +0,0 @@ -.TH connmanctl 1 07/31/2012 "" "User Commands for Connman CLI" -.SH -NAME -connmanctl \- Connman CLI -.SH -SYNOPSIS -.BR connmanctl " [" -.BR enable " <technology> | " -.BR offlinemode "] [" -.BR disable " <technology> | " -.BR offlinemode "] [" -.BR technologies "] [" -.BR state "] [" -.BR services " [\-\-properties <service>]] [" -.BR scan " <technology>] [" -.BR connect " <service>] [" -.BR config " <service> \-\-<option> ARGS...] [" -.BR help " | \-\-help]" -.PP -.SH -DESCRIPTION -Connmanctl is a Connman command line interface which can be run in two modes: -a plain synchronous command input, and an asynchronous interactive shell. -To run a specific command the user may enter connmanctl <command> [options] -[args], or enter connmanctl; in this case, the program will drop into the -interactive shell. -.PP -Connmantl can handle most simple network connections. It is able to enable/ -disable any technology that exists on the system, display a list of -services available, connect to/disconnect from any unsecured networks, -show properties of the system, the technologies, and any individual -service, and configure all of the properties. It is also able to monitor -changes in the properties of the services, technologies, and the system. -.PP -In the interactive shell, all of the same commands can be used. It -provides quicker usage when needing to use connmanctl more extensively. -.SH -COMMANDS AND OPTIONS -.TP -.BR "help | \-\-help | " "(no arguments)" -Shows the abbreviated help menu in the terminal. -.PP -.TP -.BR enable " <technology>" -Enables the given technology type (e.g. ethernet, wifi, 3g, etc.) -Turns power on to the technology, but doesn't connect unless -there is a service with autoconnect set to True. -.PP -.TP -.BR disable " <technology>" -Disables the given technology type. Turns power off to the -technology and disconnects if it is already connected. -.PP -.TP -.B enable offlinemode -Enables offline mode. Disconnects and powers down all -technologies system-wide, however each technology can be powered -back on individually. -.PP -.TP -.B disable offlinemode -Disables offline mode. Technologies are powered back on according -to their individual policies. -.PP -.TP -.B technologies -Shows a list of all technology types existing on the system and -their properties. See the properties section of the Technology -API for explanations of each property. -.PP -.TP -.B state -Shows the system properties. Includes ths online state of the -system, offline mode, and session mode. -.PP -.TP -.BR scan " <technology>" -Scans for new services on the given technology. -.PP -.TP -.B services -Shows a list of all available service names. This includes the -names of wifi networks, the wired ethernet connection, names of -bluetooth devices, etc. These are the names used when a -<service> command is called for. The service name -(e.g. Joes-wifi), the service path (e.g. -wifi_6834534139723_managed_none), or the full service path (e.g. -/net/connman/Service/wifi_5467631...) are all accepted as valid -input. An asterisk in front of the service indicates that the -service is favorited, and a "C" indicates a service that is -already connected. -.PP -.TP -.BR "services \-\-properties" " <service>" -Shows a list of all properties for that service. See the -properties section of the Service API for explanations of each -property. -.PP -.TP -.BR connect " <service>" -Connects to the given service if it is unsecured. -.PP -.TP -.BR disconnect " <service>" -Disconnects from the given service. -.PP -.TP -.BR config " <service> " \-\-<option> -Configures a writable property of the given service to the -value(s) entered after --<option>. -.PP -.TP -.BR monitor " [\-\-<option>]" -Listens for and displays DBus signals sent by Connman. The option indicates -which signals you want to subscribe to. If no option is entered, it displays -all signals from all interfaces. -.PP -.SS -Config Options: -.PP -.TP -.B \-\-autoconnect=y/n -Sets the autoconnect property of the service. -.PP -.TP -.B \-\-ipv4 -Configures the IPv4 settings for the service. Enter the settings -in the order "Method", "Address", "Netmask", then "Gateway" -after the argument. See the properties section of the Service -API for more information on these settings and the values -accepted for them. It also displays a list of changes to both the -IPv4 settings, and incidental changes to other values related to -it. -.PP -.TP -.B \-\-ipv6 -Configures the IPv6 settings for the service. Enter the settings -in the order "Method", "Address", "PrefixLength", "Gateway", then -"Privacy". See the properties section of the Service API for more -information on these settings and the values accepted for them. -It also displays a list of entered changes to the IPv6 settings, -and incidental changes to other values related to it. -.PP -.TP -.B \-\-nameservers -Adds to the list of manually configured domain name servers. -Enter the name servers after the argument separated by spaces. -.PP -.TP -.B \-\-timeservers -Adds to the list of manually configured time servers. Enter the -time servers after the argument separated by spaces. -.PP -.TP -.B \-\-domains -Adds to the list of manually configured search domains. Enter -the domains after the argument, separated by spaces. -.PP -.TP -.B \-\-proxy -Configures the IPv6 settings for the service. Enter the settings in the -order "Method", "URL". If the Method is set to "direct", no other arguments -are taken. If the Method is set to "auto", the URL is optional. To set the -Servers and Excludes manually, enter "manual" followed by "servers" with a -list of servers separated by spaces. Then, optionally, the word "excludes" -followed by a list of excludes separated by spaces. e.g. "./connmanctl config -joes-wifi \-\-proxy manual servers serv1 serv2 serv3 excludes excl1 excl2" -.PP -.SS -Monitor Options: -.PP -.TP -.B \-\-services -Listens for and displays the PropertyChanged signal from the Service interface. -Also displays the service name (e.g. Joes-wifi) that the property is part of. -More information, including a list of possible properties can be found in the -Service API. -.PP -.TP -.B \-\-tech -Listens for and displays the PropertyChanged signal from the Technology -interface. More information, including a list of possible properties can be -found in the Technology API. -.PP -.TP -.B \-\-manager -Listens for and displays the PropertyChanged, ServicesChanged, TechnologyAdded, -and TechnologyRemoved signals from the Manager interface. More information on -these signals and a list of possible properties can be found in the Manager API. -.PP diff --git a/doc/connmanctl.1.in b/doc/connmanctl.1.in new file mode 100644 index 00000000..0f891bd0 --- /dev/null +++ b/doc/connmanctl.1.in @@ -0,0 +1,282 @@ +.TH connmanctl 1 "2015-10-15" "" +.SH +NAME +connmanctl \- Connman CLI +.SH +SYNOPSIS +.BR connmanctl \ [\|\c +.BI state\fR\ | +.BI technologies\fR\ | +.BI enable \ technology\fR|offline\ | +.BI disable \ technology\fR|offline\ | +.BI tether \ technology\ \fRon|off\ | +.BI tether\fR\ wifi\ on|off\ ssid\ passphrase\fR\ | +.BR services \ [\fIservice\fR]\ | +.BI peers \ peer\fR\ | +.BI scan \ technology\fR\ | +.RI \fBconnect \ service | peer \ | +.RI \fBdisconnect \ service | peer \ | +.B config \ \fIservice\ option\ arg\fR...\ | +.BR vpnconnections \ [\fIconnection\fR]\ | +.BI help \fR\|] +.PP +.SH +DESCRIPTION +Connmanctl is a Connman command line interface which can be run in two modes: +a plain synchronous command input, and an asynchronous interactive shell. +To run a specific command the user may enter +.RI \fBconnmanctl\ command\ [ options ] \fR +or just \fBconnmanctl\fR, in the latter case an interactive shell will start. +.PP +Connmanctl can handle most network connections. It can be used to +enable/disable any technology that exists on the system, display a list of +services available, connect/disconnect networks, show properties of the system, +the technologies, and any individual service, and configure all of the +properties. It is also able to monitor changes in the properties of the +services, technologies, and the system. +.PP +In the interactive shell, all of the same commands can be used. It +provides quicker usage when needing to use connmanctl more extensively. In +addition, connecting to protected wireless access points for the first time +requires interactive shell. +.SH +COMMANDS AND OPTIONS +.TP +.B help +Shows the abbreviated help menu in the terminal. +.PP +.TP +.B state +Shows the system properties. Includes ths online state of the +system, offline mode, and session mode. +.PP +.TP +.B technologies +Shows a list of all technology types existing on the system and +their properties. See the properties section of the Technology +API for explanations of each property. +.PP +.TP +.BI enable \ technology +Enables the given technology type (e.g. ethernet, wifi, 3g, etc.) +Turns power on to the technology, but doesn't connect unless +there is a service with autoconnect set to True. +.PP +.TP +.BI disable \ technology +Disables the given technology type. Turns power off to the +technology and disconnects if it is already connected. +.PP +.TP +.B enable offline +Enables offline mode. Disconnects and powers down all +technologies system-wide, however each technology can be powered +back on individually. +.PP +.TP +.B disable offline +Disables offline mode. Technologies are powered back on according +to their individual policies. +.PP +.TP +.BI tether \ technology \ on \ \fR|\ off +Enable or disable tethering on \fItechnology\fR. Ethernet cannot be tethered +by default since tethering it usually breaks local networks. See +.BR connman.conf (5) +for enabling. +.PP +.TP +.BR tether\ wifi\ on \ |\ off \ \fIssid\ passphrase +Enable or disable wireless tethering, as well set the SSID and passphrase. +.PP +.TP +.B services +Shows a list of all available services. This includes the +nearby wifi networks, the wired ethernet connections, bluetooth devices, etc. +An asterisk in front of the service indicates that the service +has been connected before. +.PP +.TP +.BI services \ service +Shows a list of all properties for that service. +Only the service path (e.g. wifi_6834534139723_managed_none) +is accepted as a parameter. +.PP +.TP +.BI scan \ technology +Scans for new services on the given technology. +.PP +.TP +.BI connect \ service +Connects to the given service. Some services need a so-called +\fBprovisioning file\fR in order to connect to them, see +\fBconnman-service.config\fR(5). +.PP +.TP +.BI disconnect \ service +Disconnects from the given service. +.PP +.TP +.BI move-before \ service\ target-service +Prefer connecting to \fIservice\fR over \fItarget-service\fR. +.PP +.TP +.BI move-after \ service\ target-service +Prefer connecting to \fItarget-service\fR over \fIservice\fR. +.PP +.TP +.BI config \ service\ option\ arg\fR... +Configures a writable property of the given service to the value(s) entered +after \fIoption\fR. See the \fBConfig Options\fR subsection for details. +.PP +.TP +.BI monitor \ target +Listens for and displays DBus signals sent by Connman. If a currently monitored +property changes, the changes will be shown. If no \fItarget\fR is specified, +all changes will be shown. See the \fBMonitor Options\fR subsection for a +summary of parameters. +.PP +.TP +.BI vpnconnections +Shows a list of all available vpn connections. +.PP +.TP +.BI vpnconnections \ connection +Shows the current properties of \fIconnection\fR. +.PP +.SS +Commands only available in interactive mode: +.PP +.TP +.BR agent\ on \ |\ off +Enable or disable the wireless agent, used for entering wireless +network passphrases. See the \fBEXAMPLE\fR section of this man page for +an example of connecting to a wireless access point. +.PP +.TP +.BR vpnagent\ on \ |\ off +Enable or disable the vpn agent, used for entering vpn credentials. +.SS +Config Options: +.PP +.TP +.BR \fBautoconnect\ on \ |\ off +Sets the autoconnect property of the service. +.PP +.TP +.BR ipv4\ off \ |\ dhcp \ |\ manual\ \fIaddress\ netmask\ gateway +Configures the IPv4 settings for the service. The argument +\fBoff\fR means that IPv4 won't be used, \fBdhcp\fR means that +dhcp will be used to get the settings and \fBmanual\fR means +that the given arguments will be used as IPv4 settings. +.IR address ,\ netmask " and " gateway +must be valid IPv4 addresses. See the \fBEXAMPLE\fR section +of this man page for details. +.PP +.TP +.BR ipv6\ off \ |\ auto \ |\ manual\ \fIaddress\ prefixlength\ gateway +Configures the IPv6 settings for the service. The argument +\fBoff\fR means that IPv6 won't be used, \fBauto\fR means that +settings will be asked from the network and \fBmanual\fR means +that the given arguments will be used as IPv6 settings. +.IR address " and " gateway +must be valid IPv4 addresses. \fIprefixlength\fR is the length +of the prefix in bits. See the \fBEXAMPLE\fR section of this man +page for details. +.PP +.TP +.BI nameservers\ dns\fR\ [...] +Set the list of nameservers, separated by spaces. +.PP +.TP +.BI timeservers\ server\fR\ [...] +Set the list of timeservers, separated by spaces. +.PP +.TP +.BI domains\ domain\fR\ [...] +Set the list of search domains, separated by spaces. +.PP +.TP +.BR proxy\ direct \ |\ auto\fI\ URL \ |\ manual\ \fIserver [...]\ [--excludes\ \fIserver [...]] +Configures the proxy settings for the service. \fBdirect\fR means that no +proxy will be used. If using \fBauto\fR without a parameter, the network +will be asked for the proxy settings. Otherwise, use \fIURL\fR as an +proxy autoconfiguration URL. When set to \fBmanual\fR, the first list of servers +is used as proxy servers, and the traffic to the second list of servers are +excluded from the proxy. The list of excluded servers is optional. See the +\fBEXAMPLE\fR section of this man page for details. +.PP +.SS +Monitor Options: +.PP +.TP +.BR services\ [ off ] +Listens for changes to services, for example a service getting an IP address. +.PP +.TP +.BR tech\ [ off ] +Listens for changes to technologies, for example a technology getting enabled. +.PP +.TP +.BR manager\ [ off ] +Listens for the changes to global properties, available technologies, +services, and peers. +.PP +.TP +.BR vpnmanager\ [ off ] +Listens for added or removed vpn connections. +.PP +.TP +.BR vpnconnection\ [ off ] +Listens for the changes to vpn connections, for example connecting to a VPN. +.PP +.SH +EXAMPLE +Listing available technologies: +.PP + $ connmanctl technologies +.PP +Listing available services: +.PP + $ connmanctl services +.PP +Scanning for wireless networks: +.PP + $ connmanctl scan wifi +.PP +Using the interactive mode to access a wireless access point: +.PP + $ connmanctl + connmanctl> agent on + Agent registered + connmanctl> connect wifi_100ba9d170fc_666f6f626172_managed_psk + Agent RequestInput wifi_100ba9d170fc_666f6f626172_managed_psk + Passphrase = [ Type=psk, Requirement=mandatory ] + Passphrase? password + Connected wifi_100ba9d170fc_666f6f626172_managed_psk + connmanctl> +.PP +Configuring a static IP from the command line: +.PP + $ connmanctl config wifi_100ba9d170fc_666f6f626172_managed_psk ipv4 manual 192.168.1.101 255.255.255.0 192.168.1.1 +.PP +Changing the IP back to dhcp: +.PP + $ connmanctl config wifi_100ba9d170fc_666f6f626172_managed_psk ipv4 dhcp +.PP +Setting a proxy server: +.PP + $ connmanctl config wifi_100ba9d170fc_666f6f626172_managed_psk proxy manual proxy.example.com +.PP +Setting multiple proxy servers: +.PP + $ connmanctl config wifi_100ba9d170fc_666f6f626172_managed_psk proxy manual proxy.example.com http://httpproxy.example.com --excludes internal.example.com +.PP +Tethering a wireless connection (ssid "SSID", passphrase "password"): +.PP + $ connmanctl tether wifi on SSID password +.PP +.SH +SEE ALSO +.BR connman.conf (5), \ connman-service.config (5), \c +.BR \ connman-vpn-provider.config (5), \ connman (8), \ connman-vpn (8) diff --git a/doc/overview-api.txt b/doc/overview-api.txt index f1268878..fd51d706 100755 --- a/doc/overview-api.txt +++ b/doc/overview-api.txt @@ -265,8 +265,8 @@ the "idle" state since the service is not connected. +---------------+ | idle |<-------------------------------+ - +---------------+ | - | | + +---------------+ A | + | clear error | | | +-------------+ | +----------------------| failure | | | service.Connect() +-------------+ | @@ -302,7 +302,7 @@ the "idle" state since the service is not connected. | | +------------------------------------------+ -The different states should no be used by the user interface to trigger +The different states should not be used by the user interface to trigger advanced actions. The state transitions are provided for the sole purpose to give the user feedback on what is currently going on. Especially in cases where networks are flaky or DHCP servers take a long time these diff --git a/doc/plugin-api.txt b/doc/plugin-api.txt index 616938b8..ea5ec0a1 100755 --- a/doc/plugin-api.txt +++ b/doc/plugin-api.txt @@ -37,7 +37,7 @@ Technology infrastructure A Technology in ConnMan is an abstract representation of the different kinds of technologies it supports such as WiFi, Ethernet, Bluetooth and -Celullar. The technologies support are added to ConnMan through plugins, such +Celullar. The technologies supported are added to ConnMan through plugins, such as plugins/bluetooth.c for the Bluetooth Technology or plugins/wifi.c for the WiFi Technology. Each new technology plugin needs to register itself as a Technology with ConnMan. As an example we will take a look at the Bluetooth @@ -65,7 +65,7 @@ plugin initialization function, bluetooth_init() in this example: connman_technology_driver_register(&tech_driver); -In this document the error check is supressed for the sake of simplicity. +In this document the error check is suppressed for the sake of simplicity. All plugins should check return values in driver registration functions. After this call ConnMan becomes aware of the new Technology plugin and will @@ -74,7 +74,7 @@ the Bluetooth plugin for example probe() would be called when a Bluetooth adapter is recognized. A Technology is only probed if there exists at least one device of such technology plugged into the system. -Complementary, the technology must be unregistered on the plugin exit function +Complementary, the technology must be unregistered by the plugin exit function through 'connman_technology_driver_unregister()'. Device infrastructure @@ -101,7 +101,7 @@ And to register the driver: 'connman_device_driver_register()' is called during the plugin initialization process, not necessarily at the plugin init function. -In this document the error check is supressed for the sake of simplicity. +In this document the error check is suppressed for the sake of simplicity. All plugins should check return values in driver registration functions. Additionally code to handle the detection of new devices needs to be written @@ -130,7 +130,7 @@ its API documentation. Network infrastructure ====================== -The Connection Manager provides a mean to plugins handle the specifics of +The Connection Manager provides a means to plugins to handle the specifics of establishing/handling a connection for each type of Technology. For the bluetooth plugin a connman_network_driver needs to be registered: @@ -147,12 +147,12 @@ And then call the register function: connman_network_driver_register(&network_driver); -In this document the error check is supressed for the sake of simplicity. +In this document the error check is suppressed for the sake of simplicity. All plugins should check return values in driver registration functions. The next step would be the probe of a Network entity, for the bluetooth plugin this would happen when a new device that supports the PAN NAP role is -paired with the system. ConnMan then call connman_device_add_network() to +paired with the system. ConnMan then calls connman_device_add_network() to associate the new Network with the existing Device entity (the local Bluetooth Adapter). diff --git a/doc/service-api.txt b/doc/service-api.txt index 7d9889e6..4fe4093a 100755 --- a/doc/service-api.txt +++ b/doc/service-api.txt @@ -30,13 +30,12 @@ Methods dict GetProperties() [deprecated] void ClearProperty(string name) - Clears the value of the specified property. + Clears the value of the specified property. Only + the readonly Error property can be cleared using + this method call. When cleared the service is reset + to the idle state. - Properties cannot be cleared for hidden WiFi service - entries or provisioned services. - - Possible Errors: [service].Error.InvalidArguments - [service].Error.InvalidProperty + Possible Errors: [service].Error.InvalidProperty void Connect() @@ -92,8 +91,9 @@ Methods dict GetProperties() [deprecated] to false, but that is currently not supported. In the case a connection attempt failed and the - service is in the State=failure, this method can - also be used to reset the service. + service is in the state "failure", "idle" or + "disconnect", this method can also be used + to reset the service. Calling this method on Ethernet devices, hidden WiFi services or provisioned services will cause an error @@ -248,9 +248,9 @@ Properties string State [readonly] This value will be set to true if the service is configured externally via a configuration file. - The only valid operation are Connect() and of - course Disconnect(). The Remove() method will - result in an error. + The only valid operations are Connect(), Disconnect() + and changing the AutoConnect property. The Remove() + method will result in an error. boolean AutoConnect [readwrite] @@ -341,9 +341,15 @@ Properties string State [readonly] string Method [readonly] - Possible values are "dhcp", "manual" + Possible values are "dhcp", "manual", "auto" and "off". + It could be "auto" in case address was got + through IPv4LL after DHCP failed. In this + case also IPv4.Configuration will become + "auto" to allow user to ask for a DHCP + address at any time. + The value "fixed" indicates an IP address that can not be modified. For example cellular networks return fixed information. diff --git a/doc/session-api.txt b/doc/session-api.txt index 3aac535a..e8da5224 100755 --- a/doc/session-api.txt +++ b/doc/session-api.txt @@ -182,3 +182,26 @@ Settings string State [readonly] (This setting will be removed when the unique process identification problem is solved.) + string AllowedInterface [readwrite] [experimental] + + This field is used to bind a session to a specific + network interface. If this field is empty, the first + interface from a list of available ones will be used. + Also "*" string matches any interface. + + Only one interface may be specified. + + If a specified network interface is not available + (e.g. because AllowedBearers filters it out), the + session will not go online. + + boolean SourceIPRule [readwrite] [experimental] + + If set to true the session will create source IP + address rule in the firewall, which redirects traffic + to that session's routing table. + + Each session maintains a dedicated routing table, with + a default route. When the source IP rule is enabled, + an application can select which session/interface to + send traffic on, using bind-before-connect mechanism. diff --git a/doc/session-overview.txt b/doc/session-overview.txt index 23931678..976c3518 100755 --- a/doc/session-overview.txt +++ b/doc/session-overview.txt @@ -92,3 +92,34 @@ The default session configuration does not enable the per application routing. Sessions are still useful in this setup, because the notification of sessions is still available, e.g. the online/offline notification. + + +Multiple per-session routing tables +=================================== + +Sessions can be used in an environment with multiple network interfaces, +where an application needs to direct outside traffic through a selected +interface(s). ConnMan can maintain multiple sessions in a connected +stated, and the application can dynamically, on a per-socket basis, +select which session is used to route traffic. + +Example use cases are: +- monitoring liveness of multiple connected interfaces, by sending + end-to-end heartbeat traffic on all of them in parallel. +- prioritising traffic - e.g. sensitive data can be transferred over a slow, + but secure connection, while big, public downloads use a second session + +By default, ConnMan maintains only one online service. So it is impossible +to send external traffic (routed through a gateway) on multiple interfaces. +In order to enable this functionality, an application needs to issue the +following API calls: +- create multiple sessions, one for each interface to be used +- set each session's AllowedInterface config field to the required interface + name (eth0, eth1, wlan0, ppp0, etc.) +- set each session's SourceIPRule config field to true +- connect each session (or the service it is using) + +That will instruct ConnMan to create multiple routing tables, with default +routes in them. After that, the application can issue a bind() call on each +socket, using required interface's source IP address. The bind() call must +be made before a connect() call on a socket. diff --git a/doc/technology-api.txt b/doc/technology-api.txt index 14245eb6..fb6bd314 100755 --- a/doc/technology-api.txt +++ b/doc/technology-api.txt @@ -68,13 +68,16 @@ Properties boolean Powered [readwrite] Boolean representing if a technology is connected. - This is just a convience property for allowing the + This is just a convenience property for allowing the UI to easily show if this technology has an active connection or not. If this property is True it means that at least one service of this technology is in ready state. + In case of P2P technology, this property indicates + if the peer is fully connected to another peer. + string Name [readonly] Name of this technology. diff --git a/doc/vpn-config-format.txt b/doc/vpn-config-format.txt index b4898eb0..cb0f16a8 100644 --- a/doc/vpn-config-format.txt +++ b/doc/vpn-config-format.txt @@ -88,7 +88,8 @@ OpenVPN VPN supports following options (see openvpn(8) for details): --auth-user-pass value (O) OpenVPN.TLSRemote --tls-remote Accept connections only from a host with X509 name or common name equal - to name parameter (O) + to name parameter (O). Deprecated in + OpenVPN 2.3+. OpenVPN.TLSAuth sub-option of --tls-remote (O) OpenVPN.TLSAuthDir sub-option of --tls-remote (O) OpenVPN.Cipher --cipher Encrypt packets with cipher algorithm @@ -104,6 +105,9 @@ OpenVPN VPN supports following options (see openvpn(8) for details): OpenVPN.ConfigFile --config OpenVPN config file that can contain extra options not supported by OpenVPN plugin (O) + OpenVPN.DeviceType --dev-type Whether the VPN should use a tun (OSI + layer 3) or tap (OSI layer 2) device. + Value is "tun" (default) or "tap" (O) VPNC VPN supports following options (see vpnc(8) for details): Option name VPNC config value Description @@ -113,16 +117,23 @@ VPNC VPN supports following options (see vpnc(8) for details): VPNC.Xauth.Password Xauth password your password (cleartext) (O) VPNC.IKE.Authmode IKE Authmode IKE Authentication mode (O) VPNC.IKE.DHGroup IKE DH Group name of the IKE DH Group (O) - VPNC.PFS Perfect Forward Secrecy Diffie-Hellman group to use for PFS (O) + VPNC.PFS Perfect Forward Secrecy Diffie-Hellman group to use for + PFS (O) VPNC.Domain Domain Domain name for authentication (O) VPNC.Vendor Vendor vendor of your IPSec gateway (O) VPNC.LocalPort Local Port local ISAKMP port number to use - VPNC.CiscoPort Cisco UDP Encapsulation Port Local UDP port number to use (O) - VPNC.AppVersion Application Version Application Version to report (O) + VPNC.CiscoPort Cisco UDP Encapsulation Port Local UDP port number to + use (O) + VPNC.AppVersion Application version Application Version to report (O) VPNC.NATTMode NAT Traversal Mode Which NAT-Traversal Method to use (O) - VPNC.DPDTimeout DPD idle timeout (our side) Send DPD packet after timeout (O) + VPNC.DPDTimeout DPD idle timeout (our side) Send DPD packet after + timeout (O) VPNC.SingleDES Enable Single DES enables single DES encryption (O) - VPNC.NoEncryption Enable no encryption enables using no encryption for data traffic (O) + VPNC.NoEncryption Enable no encryption enables using no encryption for data + traffic (O) + VPNC.DeviceType Interface mode Whether the VPN should use a tun (OSI + layer 3) or tap (OSI layer 2) device. + Value is "tun" (default) or "tap" (O) L2TP VPN supports following options (see xl2tpd.conf(5) and pppd(8) for details) Option name xl2tpd config value Description @@ -130,9 +141,9 @@ L2TP VPN supports following options (see xl2tpd.conf(5) and pppd(8) for details) if not set here (O) L2TP.Password - L2TP password, asked from the user if not set here (O) - L2TP.BPS bps Max bandwith to use (O) - L2TP.TXBPS tx bps Max transmit bandwith to use (O) - L2TP.RXBPS rx bps Max receive bandwith to use (O) + L2TP.BPS bps Max bandwidth to use (O) + L2TP.TXBPS tx bps Max transmit bandwidth to use (O) + L2TP.RXBPS rx bps Max receive bandwidth to use (O) L2TP.LengthBit length bit Use length bit (O) L2TP.Challenge challenge Use challenge authentication (O) L2TP.DefaultRoute defaultroute Default route (O) @@ -162,13 +173,14 @@ L2TP VPN supports following options (see xl2tpd.conf(5) and pppd(8) for details) PPPD.RefuseMSCHAP2 refuse-mschapv2 Deny mschapv2 auth (O) PPPD.NoBSDComp nobsdcomp Disables BSD compression (O) PPPD.NoPcomp nopcomp Disable protocol compression (O) - PPPD.UseAccomp accomp Disable address/control compression (O) + PPPD.UseAccomp noaccomp Disable address/control + compression (O) PPPD.NoDeflate nodeflate Disable deflate compression (O) PPPD.ReqMPPE require-mppe Require the use of MPPE (O) PPPD.ReqMPPE40 require-mppe-40 Require the use of MPPE 40 bit (O) PPPD.ReqMPPE128 require-mppe-128 Require the use of MPPE 128 bit (O) PPPD.ReqMPPEStateful mppe-stateful Allow MPPE to use stateful mode (O) - PPPD.NoVJ no-vj-comp No Van Jacobson compression (O) + PPPD.NoVJ novj No Van Jacobson compression (O) PPTP VPN supports following options (see pptp(8) and pppd(8) for details) @@ -193,7 +205,7 @@ PPTP VPN supports following options (see pptp(8) and pppd(8) for details) PPPD.RequirMPPE40 require-mppe-40 Require the use of MPPE 40 bit (O) PPPD.RequirMPPE128 require-mppe-128 Require the use of MPPE 128 bit (O) PPPD.RequirMPPEStateful mppe-stateful Allow MPPE to use stateful mode (O) - PPPD.NoVJ no-vj-comp No Van Jacobson compression (O) + PPPD.NoVJ novj No Van Jacobson compression (O) IPsec VPN supports following options (see swanctl.conf(5) for details): Option name IPSec config value Description diff --git a/doc/vpn-connection-api.txt b/doc/vpn-connection-api.txt index 4367699f..a814a388 100755 --- a/doc/vpn-connection-api.txt +++ b/doc/vpn-connection-api.txt @@ -144,7 +144,8 @@ Properties string State [readonly] string Netmask - The netmask of the route. + The netmask of the route. For IPv6 routes, + this is the prefix length. string Gateway @@ -166,7 +167,8 @@ Properties string State [readonly] string Netmask - The netmask of the route. + The netmask of the route. For IPv6 routes, + this is the prefix length. string Gateway diff --git a/gdbus/client.c b/gdbus/client.c index 6e4dc669..9748ae25 100755 --- a/gdbus/client.c +++ b/gdbus/client.c @@ -857,28 +857,30 @@ gboolean g_dbus_proxy_method_call(GDBusProxy *proxy, const char *method, if (client == NULL) return FALSE; - data = g_try_new0(struct method_call_data, 1); - if (data == NULL) - return FALSE; - - data->function = function; - data->user_data = user_data; - data->destroy = destroy; - msg = dbus_message_new_method_call(client->service_name, proxy->obj_path, proxy->interface, method); - if (msg == NULL) { - g_free(data); + if (msg == NULL) return FALSE; - } if (setup) { DBusMessageIter iter; dbus_message_iter_init_append(msg, &iter); - setup(&iter, data->user_data); + setup(&iter, user_data); } + if (!function) + return g_dbus_send_message(client->dbus_conn, msg); + + data = g_try_new0(struct method_call_data, 1); + if (data == NULL) + return FALSE; + + data->function = function; + data->user_data = user_data; + data->destroy = destroy; + + if (g_dbus_send_message_with_reply(client->dbus_conn, msg, &call, METHOD_CALL_TIMEOUT) == FALSE) { dbus_message_unref(msg); @@ -1077,10 +1079,6 @@ static void parse_managed_objects(GDBusClient *client, DBusMessage *msg) dbus_message_iter_next(&dict); } -#if !defined TIZEN_EXT - if (client->ready) - client->ready(client, client->ready_data); -#endif } static void get_managed_objects_reply(DBusPendingCall *call, void *user_data) @@ -1101,6 +1099,11 @@ static void get_managed_objects_reply(DBusPendingCall *call, void *user_data) parse_managed_objects(client, reply); done: +#if !defined TIZEN_EXT + if (client->ready) + client->ready(client, client->ready_data); +#endif + dbus_message_unref(reply); dbus_pending_call_unref(client->get_objects_call); diff --git a/gdbus/gdbus.h b/gdbus/gdbus.h index 633db0c7..70190b71 100755 --- a/gdbus/gdbus.h +++ b/gdbus/gdbus.h @@ -31,11 +31,6 @@ extern "C" { #include <dbus/dbus.h> #include <glib.h> -typedef enum GDBusMethodFlags GDBusMethodFlags; -typedef enum GDBusSignalFlags GDBusSignalFlags; -typedef enum GDBusPropertyFlags GDBusPropertyFlags; -typedef enum GDBusSecurityFlags GDBusSecurityFlags; - typedef struct GDBusArgInfo GDBusArgInfo; typedef struct GDBusMethodTable GDBusMethodTable; typedef struct GDBusSignalTable GDBusSignalTable; @@ -115,6 +110,16 @@ enum GDBusSecurityFlags { G_DBUS_SECURITY_FLAG_ALLOW_INTERACTION = (1 << 2), }; +enum GDbusPropertyChangedFlags { + G_DBUS_PROPERTY_CHANGED_FLAG_FLUSH = (1 << 0), +}; + +typedef enum GDBusMethodFlags GDBusMethodFlags; +typedef enum GDBusSignalFlags GDBusSignalFlags; +typedef enum GDBusPropertyFlags GDBusPropertyFlags; +typedef enum GDBusSecurityFlags GDBusSecurityFlags; +typedef enum GDbusPropertyChangedFlags GDbusPropertyChangedFlags; + struct GDBusArgInfo { const char *name; const char *signature; @@ -300,6 +305,10 @@ void g_dbus_pending_property_error(GDBusPendingReply id, const char *name, void g_dbus_emit_property_changed(DBusConnection *connection, const char *path, const char *interface, const char *name); +void g_dbus_emit_property_changed_full(DBusConnection *connection, + const char *path, const char *interface, + const char *name, + GDbusPropertyChangedFlags flags); gboolean g_dbus_get_properties(DBusConnection *connection, const char *path, const char *interface, DBusMessageIter *iter); diff --git a/gdbus/object.c b/gdbus/object.c index c7ed02fe..c333d5b7 100755 --- a/gdbus/object.c +++ b/gdbus/object.c @@ -258,7 +258,8 @@ static DBusHandlerResult process_message(DBusConnection *connection, reply = method->function(connection, message, iface_user_data); - if (method->flags & G_DBUS_METHOD_FLAG_NOREPLY) { + if (method->flags & G_DBUS_METHOD_FLAG_NOREPLY || + dbus_message_get_no_reply(message)) { if (reply != NULL) dbus_message_unref(reply); return DBUS_HANDLER_RESULT_HANDLED; @@ -1722,9 +1723,10 @@ static void process_property_changes(struct generic_data *data) } } -void g_dbus_emit_property_changed(DBusConnection *connection, +void g_dbus_emit_property_changed_full(DBusConnection *connection, const char *path, const char *interface, - const char *name) + const char *name, + GDbusPropertyChangedFlags flags) { const GDBusPropertyTable *property; struct generic_data *data; @@ -1762,7 +1764,16 @@ void g_dbus_emit_property_changed(DBusConnection *connection, iface->pending_prop = g_slist_prepend(iface->pending_prop, (void *) property); - add_pending(data); + if (flags & G_DBUS_PROPERTY_CHANGED_FLAG_FLUSH) + process_property_changes(data); + else + add_pending(data); +} + +void g_dbus_emit_property_changed(DBusConnection *connection, const char *path, + const char *interface, const char *name) +{ + g_dbus_emit_property_changed_full(connection, path, interface, name, 0); } gboolean g_dbus_get_properties(DBusConnection *connection, const char *path, diff --git a/gdhcp/client.c b/gdhcp/client.c index d3794bde..5a455f08 100755 --- a/gdhcp/client.c +++ b/gdhcp/client.c @@ -1297,7 +1297,7 @@ static int dhcp_l2_socket(int ifindex) .filter = (struct sock_filter *) filter_instr, }; - fd = socket(PF_PACKET, SOCK_DGRAM | SOCK_CLOEXEC, htons(ETH_P_IP)); + fd = socket(PF_PACKET, SOCK_DGRAM | SOCK_CLOEXEC, 0); if (fd < 0) return -errno; @@ -1671,8 +1671,7 @@ static uint32_t get_lease(struct dhcp_packet *packet) return 3600; lease_seconds = get_be32(option); - /* paranoia: must not be prone to overflows */ - lease_seconds &= 0x0fffffff; + if (lease_seconds < 10) lease_seconds = 10; @@ -1720,8 +1719,10 @@ static gboolean continue_rebound(gpointer user_data) switch_listening_mode(dhcp_client, L2); send_request(dhcp_client); - if (dhcp_client->t2_timeout> 0) + if (dhcp_client->t2_timeout> 0) { g_source_remove(dhcp_client->t2_timeout); + dhcp_client->t2_timeout = 0; + } /*recalculate remaining rebind time*/ dhcp_client->T2 >>= 1; @@ -2268,6 +2269,8 @@ static gboolean listener_event(GIOChannel *channel, GIOCondition condition, if (dhcp_client->type == G_DHCP_IPV6) { re = dhcpv6_recv_l3_packet(&packet6, buf, sizeof(buf), dhcp_client->listener_sockfd); + if (re < 0) + return TRUE; pkt_len = re; pkt = packet6; xid = packet6->transaction_id[0] << 16 | @@ -2330,10 +2333,6 @@ static gboolean listener_event(GIOChannel *channel, GIOCondition condition, return TRUE; } - if (!message_type && !client_id) - /* No message type / client id option, ignore package */ - return TRUE; - debug(dhcp_client, "received DHCP packet xid 0x%04x " "(current state %d)", ntohl(xid), dhcp_client->state); @@ -3160,13 +3159,14 @@ GDHCPClientError g_dhcp_client_set_id(GDHCPClient *dhcp_client) return G_DHCP_CLIENT_ERROR_NONE; } -/* Now only support send hostname */ +/* Now only support send hostname and vendor class ID */ GDHCPClientError g_dhcp_client_set_send(GDHCPClient *dhcp_client, unsigned char option_code, const char *option_value) { uint8_t *binary_option; - if (option_code == G_DHCP_HOST_NAME && option_value) { + if ((option_code == G_DHCP_HOST_NAME || + option_code == G_DHCP_VENDOR_CLASS_ID) && option_value) { binary_option = alloc_dhcp_string_option(option_code, option_value); if (!binary_option) diff --git a/gdhcp/common.c b/gdhcp/common.c index 6d457ac5..b8c5091a 100755 --- a/gdhcp/common.c +++ b/gdhcp/common.c @@ -46,6 +46,7 @@ static const DHCPOption client_options[] = { { OPTION_IP | OPTION_LIST, 0x06 }, /* domain-name-servers */ { OPTION_STRING, 0x0c }, /* hostname */ { OPTION_STRING, 0x0f }, /* domain-name */ + { OPTION_U16, 0x1a }, /* mtu */ { OPTION_IP | OPTION_LIST, 0x2a }, /* ntp-servers */ { OPTION_U32, 0x33 }, /* dhcp-lease-time */ /* Options below will not be exposed to user */ @@ -554,15 +555,20 @@ int dhcpv6_send_packet(int index, struct dhcpv6_packet *dhcp_pkt, int len) if (fd < 0) return -errno; - setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)); + if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) < 0) { + int err = errno; + close(fd); + return -err; + } memset(&src, 0, sizeof(src)); src.sin6_family = AF_INET6; src.sin6_port = htons(DHCPV6_CLIENT_PORT); if (bind(fd, (struct sockaddr *) &src, sizeof(src)) <0) { + int err = errno; close(fd); - return -errno; + return -err; } memset(&dst, 0, sizeof(dst)); @@ -636,7 +642,7 @@ int dhcp_send_raw_packet(struct dhcp_packet *dhcp_pkt, offsetof(struct ip_udp_dhcp_packet, udp), }; - fd = socket(PF_PACKET, SOCK_DGRAM | SOCK_CLOEXEC, htons(ETH_P_IP)); + fd = socket(PF_PACKET, SOCK_DGRAM | SOCK_CLOEXEC, 0); if (fd < 0) return -errno; @@ -653,8 +659,9 @@ int dhcp_send_raw_packet(struct dhcp_packet *dhcp_pkt, dest.sll_halen = 6; memcpy(dest.sll_addr, dest_arp, 6); if (bind(fd, (struct sockaddr *)&dest, sizeof(dest)) < 0) { + int err = errno; close(fd); - return -errno; + return -err; } packet.ip.protocol = IPPROTO_UDP; @@ -681,10 +688,13 @@ int dhcp_send_raw_packet(struct dhcp_packet *dhcp_pkt, */ n = sendto(fd, &packet, IP_UPD_DHCP_SIZE, 0, (struct sockaddr *) &dest, sizeof(dest)); - close(fd); + if (n < 0) { + int err = errno; + close(fd); + return -err; + } - if (n < 0) - return -errno; + close(fd); return n; } @@ -705,15 +715,20 @@ int dhcp_send_kernel_packet(struct dhcp_packet *dhcp_pkt, if (fd < 0) return -errno; - setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)); + if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) < 0) { + int err = errno; + close(fd); + return -err; + } memset(&client, 0, sizeof(client)); client.sin_family = AF_INET; client.sin_port = htons(source_port); client.sin_addr.s_addr = htonl(source_ip); if (bind(fd, (struct sockaddr *) &client, sizeof(client)) < 0) { + int err = errno; close(fd); - return -errno; + return -err; } memset(&client, 0, sizeof(client)); @@ -721,17 +736,20 @@ int dhcp_send_kernel_packet(struct dhcp_packet *dhcp_pkt, client.sin_port = htons(dest_port); client.sin_addr.s_addr = htonl(dest_ip); if (connect(fd, (struct sockaddr *) &client, sizeof(client)) < 0) { + int err = errno; close(fd); - return -errno; + return -err; } n = write(fd, dhcp_pkt, DHCP_SIZE); + if (n < 0) { + int err = errno; + close(fd); + return -err; + } close(fd); - if (n < 0) - return -errno; - return n; } @@ -746,12 +764,17 @@ int dhcp_l3_socket(int port, const char *interface, int family) if (fd < 0) return -errno; - setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)); + if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) < 0) { + int err = errno; + close(fd); + return -err; + } if (setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, interface, strlen(interface) + 1) < 0) { + int err = errno; close(fd); - return -1; + return -err; } if (family == AF_INET) { diff --git a/gdhcp/gdhcp.h b/gdhcp/gdhcp.h index fd6ce548..f51a8b05 100755 --- a/gdhcp/gdhcp.h +++ b/gdhcp/gdhcp.h @@ -77,7 +77,9 @@ typedef enum { #define G_DHCP_DNS_SERVER 0x06 #define G_DHCP_DOMAIN_NAME 0x0f #define G_DHCP_HOST_NAME 0x0c +#define G_DHCP_MTU 0x1a #define G_DHCP_NTP_SERVER 0x2a +#define G_DHCP_VENDOR_CLASS_ID 0x3c #define G_DHCP_CLIENT_ID 0x3d #define G_DHCPV6_CLIENTID 1 diff --git a/gdhcp/ipv4ll.c b/gdhcp/ipv4ll.c index c43971f0..d9001987 100755 --- a/gdhcp/ipv4ll.c +++ b/gdhcp/ipv4ll.c @@ -72,7 +72,7 @@ int ipv4ll_send_arp_packet(uint8_t* source_eth, uint32_t source_ip, uint32_t ip_target; int fd, n; - fd = socket(PF_PACKET, SOCK_DGRAM | SOCK_CLOEXEC, htons(ETH_P_ARP)); + fd = socket(PF_PACKET, SOCK_DGRAM | SOCK_CLOEXEC, 0); if (fd < 0) return -errno; @@ -85,8 +85,9 @@ int ipv4ll_send_arp_packet(uint8_t* source_eth, uint32_t source_ip, dest.sll_halen = ETH_ALEN; memset(dest.sll_addr, 0xFF, ETH_ALEN); if (bind(fd, (struct sockaddr *)&dest, sizeof(dest)) < 0) { + int err = errno; close(fd); - return -errno; + return -err; } ip_source = htonl(source_ip); @@ -116,7 +117,7 @@ int ipv4ll_arp_socket(int ifindex) int fd; struct sockaddr_ll sock; - fd = socket(PF_PACKET, SOCK_DGRAM | SOCK_CLOEXEC, htons(ETH_P_ARP)); + fd = socket(PF_PACKET, SOCK_DGRAM | SOCK_CLOEXEC, 0); if (fd < 0) return fd; @@ -127,8 +128,9 @@ int ipv4ll_arp_socket(int ifindex) sock.sll_ifindex = ifindex; if (bind(fd, (struct sockaddr *) &sock, sizeof(sock)) != 0) { + int err = errno; close(fd); - return -errno; + return -err; } return fd; diff --git a/gdhcp/server.c b/gdhcp/server.c index 83132a71..44ce771a 100755 --- a/gdhcp/server.c +++ b/gdhcp/server.c @@ -215,9 +215,6 @@ static struct dhcp_lease *add_lease(GDHCPServer *dhcp_server, uint32_t expire, g_hash_table_insert(dhcp_server->nip_lease_hash, GINT_TO_POINTER((int) lease->lease_nip), lease); - if (dhcp_server->lease_added_cb) - dhcp_server->lease_added_cb(lease->lease_mac, yiaddr); - return lease; } @@ -618,6 +615,9 @@ static void send_ACK(GDHCPServer *dhcp_server, send_packet_to_client(dhcp_server, &packet); add_lease(dhcp_server, 0, packet.chaddr, packet.yiaddr); + + if (dhcp_server->lease_added_cb) + dhcp_server->lease_added_cb(packet.chaddr, packet.yiaddr); } static void send_NAK(GDHCPServer *dhcp_server, diff --git a/gsupplicant/gsupplicant.h b/gsupplicant/gsupplicant.h index 123f3b2f..88606262 100755 --- a/gsupplicant/gsupplicant.h +++ b/gsupplicant/gsupplicant.h @@ -157,7 +157,12 @@ struct _GSupplicantSSID { const char *eap; const char *passphrase; const char *identity; + const char *anonymous_identity; const char *ca_cert_path; + const char *subject_match; + const char *altsubject_match; + const char *domain_suffix_match; + const char *domain_match; const char *client_cert_path; const char *private_key_path; const char *private_key_passphrase; @@ -377,7 +382,8 @@ const char *g_supplicant_network_get_eap(GSupplicantNetwork *network); const char *g_supplicant_network_get_identity(GSupplicantNetwork *network); const char *g_supplicant_network_get_phase2(GSupplicantNetwork *network); unsigned int g_supplicant_network_get_keymgmt(GSupplicantNetwork *network); -void *g_supplicant_network_get_wifi_vsie(GSupplicantNetwork *network); +const void *g_supplicant_network_get_wifi_vsie(GSupplicantNetwork *network, + unsigned int *wifi_vsie_len); #endif struct _GSupplicantCallbacks { @@ -389,6 +395,7 @@ struct _GSupplicantCallbacks { void (*p2p_support) (GSupplicantInterface *interface); void (*scan_started) (GSupplicantInterface *interface); void (*scan_finished) (GSupplicantInterface *interface); + void (*ap_create_fail) (GSupplicantInterface *interface); void (*network_added) (GSupplicantNetwork *network); void (*network_removed) (GSupplicantNetwork *network); #if defined TIZEN_EXT @@ -396,6 +403,7 @@ struct _GSupplicantCallbacks { #endif void (*network_changed) (GSupplicantNetwork *network, const char *property); + void (*network_associated) (GSupplicantNetwork *network); #if defined TIZEN_EXT void (*system_power_off) (void); void (*assoc_failed) (void *user_data); @@ -409,7 +417,7 @@ struct _GSupplicantCallbacks { void (*peer_request) (GSupplicantPeer *peer); void (*debug) (const char *str); void (*disconnect_reasoncode)(GSupplicantInterface *interface, - int reasoncode); + int reasoncode); void (*assoc_status_code)(GSupplicantInterface *interface, int reasoncode); }; diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c index 243dcd09..5e9f5095 100755..100644 --- a/gsupplicant/supplicant.c +++ b/gsupplicant/supplicant.c @@ -143,6 +143,7 @@ static GHashTable *bss_mapping; static GHashTable *peer_mapping; static GHashTable *group_mapping; static GHashTable *pending_peer_connection; +static GHashTable *config_file_table; struct _GSupplicantWpsCredentials { unsigned char ssid[32]; @@ -150,6 +151,13 @@ struct _GSupplicantWpsCredentials { char *key; }; +struct added_network_information { + char * ssid; + GSupplicantSecurity security; + char * passphrase; + char * private_passphrase; +}; + struct _GSupplicantInterface { char *path; char *network_path; @@ -163,6 +171,7 @@ struct _GSupplicantInterface { unsigned int max_scan_ssids; bool p2p_support; bool p2p_finding; + bool ap_create_in_progress; dbus_bool_t ready; GSupplicantState state; dbus_bool_t scanning; @@ -177,10 +186,11 @@ struct _GSupplicantInterface { GHashTable *network_table; GHashTable *peer_table; GHashTable *group_table; - GHashTable *net_mapping; GHashTable *bss_mapping; void *data; const char *pending_peer_path; + GSupplicantNetwork *current_network; + struct added_network_information network_info; #if defined TIZEN_EXT int disconnect_reason; #endif @@ -211,7 +221,8 @@ struct g_supplicant_bss { #if defined TIZEN_EXT dbus_bool_t ft_psk; dbus_bool_t ft_ieee8021x; - GSList *vsie_list; + char *wifi_vsie; + unsigned int wifi_vsie_len; dbus_bool_t hs20; #endif unsigned int wps_capabilities; @@ -239,7 +250,8 @@ struct _GSupplicantNetwork { char *identity; char *phase2; unsigned int keymgmt; - GSList *vsie_list; + char *wifi_vsie; + unsigned int wifi_vsie_len; #endif }; @@ -266,12 +278,53 @@ struct _GSupplicantGroup { GSList *members; }; +struct interface_data { + GSupplicantInterface *interface; + char *path; /* Interface path cannot be taken from interface (above) as + * it might have been freed already. + */ + GSupplicantInterfaceCallback callback; + void *user_data; + bool network_remove_in_progress; + GSupplicantSSID *ssid; +}; + +struct interface_create_data { + char *ifname; + char *driver; + char *bridge; + GSupplicantInterface *interface; + GSupplicantInterfaceCallback callback; + void *user_data; +}; + +struct interface_connect_data { + GSupplicantInterface *interface; + char *path; + GSupplicantInterfaceCallback callback; + void *user_data; + union { + GSupplicantSSID *ssid; + GSupplicantPeerParams *peer; + }; +}; + +struct interface_scan_data { + GSupplicantInterface *interface; + char *path; + GSupplicantInterfaceCallback callback; + GSupplicantScanParams *scan_params; + void *user_data; +}; + +static int network_remove(struct interface_data *data); + static inline void debug(const char *format, ...) { char str[256]; va_list ap; - if (!callbacks_pointer->debug) + if (!callbacks_pointer || !callbacks_pointer->debug) return; va_start(ap, format); @@ -369,6 +422,70 @@ static GSupplicantState string2state(const char *state) return G_SUPPLICANT_STATE_UNKNOWN; } +static bool compare_network_parameters(GSupplicantInterface *interface, + GSupplicantSSID *ssid) +{ + if (memcmp(interface->network_info.ssid, ssid->ssid, ssid->ssid_len)) + return FALSE; + + if (interface->network_info.security != ssid->security) + return FALSE; + + if (interface->network_info.passphrase && + g_strcmp0(interface->network_info.passphrase, + ssid->passphrase) != 0) { + return FALSE; + } + + if (interface->network_info.private_passphrase && + g_strcmp0(interface->network_info.private_passphrase, + ssid->private_key_passphrase) != 0) { + return FALSE; + } + + return TRUE; +} + +static void remove_network_information(GSupplicantInterface * interface) +{ + g_free(interface->network_info.ssid); + g_free(interface->network_info.passphrase); + g_free(interface->network_info.private_passphrase); + interface->network_info.ssid = NULL; + interface->network_info.passphrase = NULL; + interface->network_info.private_passphrase = NULL; +} + +static int store_network_information(GSupplicantInterface * interface, + GSupplicantSSID *ssid) +{ + interface->network_info.ssid = g_malloc(ssid->ssid_len + 1); + if (interface->network_info.ssid != NULL) { + memcpy(interface->network_info.ssid, ssid->ssid, + ssid->ssid_len); + interface->network_info.ssid[ssid->ssid_len] = '\0'; + } else { + return -ENOMEM; + } + + interface->network_info.security = ssid->security; + + if ((ssid->security == G_SUPPLICANT_SECURITY_WEP || + ssid->security == G_SUPPLICANT_SECURITY_PSK || + ssid->security == G_SUPPLICANT_SECURITY_NONE) && + ssid->passphrase) { + interface->network_info.passphrase = g_strdup(ssid->passphrase); + } + + if (ssid->security == G_SUPPLICANT_SECURITY_IEEE8021X && + ssid->private_key_passphrase) { + interface->network_info.private_passphrase = + g_strdup(ssid->private_key_passphrase); + } + + return 0; +} + static void callback_system_ready(void) { if (system_ready) @@ -457,6 +574,17 @@ static void callback_scan_started(GSupplicantInterface *interface) callbacks_pointer->scan_started(interface); } +static void callback_ap_create_fail(GSupplicantInterface *interface) +{ + if (!callbacks_pointer) + return; + + if (!callbacks_pointer->ap_create_fail) + return; + + callbacks_pointer->ap_create_fail(interface); +} + static void callback_scan_finished(GSupplicantInterface *interface) { if (!callbacks_pointer) @@ -526,6 +654,17 @@ static void callback_network_changed(GSupplicantNetwork *network, callbacks_pointer->network_changed(network, property); } +static void callback_network_associated(GSupplicantNetwork *network) +{ + if (!callbacks_pointer) + return; + + if (!callbacks_pointer->network_associated) + return; + + callbacks_pointer->network_associated(network); +} + static void callback_peer_found(GSupplicantPeer *peer) { if (!callbacks_pointer) @@ -616,7 +755,6 @@ static void remove_interface(gpointer data) GSupplicantInterface *interface = data; g_hash_table_destroy(interface->bss_mapping); - g_hash_table_destroy(interface->net_mapping); g_hash_table_destroy(interface->network_table); g_hash_table_destroy(interface->peer_table); g_hash_table_destroy(interface->group_table); @@ -647,6 +785,7 @@ static void remove_interface(gpointer data) g_free(interface->ifname); g_free(interface->driver); g_free(interface->bridge); + remove_network_information(interface); g_free(interface); } @@ -669,7 +808,7 @@ static void remove_network(gpointer data) g_free(network->phase2); #endif #if defined TIZEN_EXT - g_slist_free_full(network->vsie_list, g_free); + g_free(network->wifi_vsie); #endif g_free(network); @@ -681,7 +820,7 @@ static void remove_bss(gpointer data) g_free(bss->path); #if defined TIZEN_EXT - g_slist_free_full(bss->vsie_list, g_free); + g_free(bss->wifi_vsie); #endif g_free(bss); } @@ -704,6 +843,7 @@ static void remove_peer(gpointer data) g_free(peer->path); g_free(peer->name); g_free(peer->identifier); + g_free(peer->widi_ies); g_free(peer); } @@ -881,20 +1021,59 @@ static void interface_capability(const char *key, DBusMessageIter *iter, key, dbus_message_iter_get_arg_type(iter)); } +struct set_apscan_data +{ + unsigned int ap_scan; + GSupplicantInterface *interface; +}; + static void set_apscan(DBusMessageIter *iter, void *user_data) { - unsigned int ap_scan = *(unsigned int *)user_data; + struct set_apscan_data *data = user_data; + unsigned int ap_scan = data->ap_scan; dbus_message_iter_append_basic(iter, DBUS_TYPE_UINT32, &ap_scan); } +static void set_apscan_complete(const char *error, + DBusMessageIter *iter, void *user_data) +{ + struct set_apscan_data *data = user_data; + GSupplicantInterface *interface = data->interface; + + if (error) { + interface->ap_create_in_progress = false; + SUPPLICANT_DBG("Set AP scan error %s", error); + goto error; + } + + interface->ap_create_in_progress = true; +error: + dbus_free(data); +} + int g_supplicant_interface_set_apscan(GSupplicantInterface *interface, unsigned int ap_scan) { - return supplicant_dbus_property_set(interface->path, + struct set_apscan_data *data; + int ret; + + data = dbus_malloc0(sizeof(*data)); + + if (!data) + return -ENOMEM; + + data->ap_scan = ap_scan; + data->interface = interface; + + ret = supplicant_dbus_property_set(interface->path, SUPPLICANT_INTERFACE ".Interface", - "ApScan", DBUS_TYPE_UINT32_AS_STRING, - set_apscan, NULL, &ap_scan, NULL); + "ApScan", DBUS_TYPE_UINT32_AS_STRING, + set_apscan, set_apscan_complete, data, NULL); + if (ret < 0) + dbus_free(data); + + return ret; } void g_supplicant_interface_set_data(GSupplicantInterface *interface, @@ -1379,29 +1558,16 @@ bool g_supplicant_network_get_rsn_mode(GSupplicantNetwork *network) return false; } -void *g_supplicant_network_get_wifi_vsie(GSupplicantNetwork *network) +const void *g_supplicant_network_get_wifi_vsie(GSupplicantNetwork *network, + unsigned int *wifi_vsie_len) { - GSList *vsie_list = NULL; - - if (!network) + if (!network) { + *wifi_vsie_len = 0; return NULL; - - if (g_slist_length(network->vsie_list) > 0) { - GSList *list = NULL; - unsigned char *vsie = NULL; - for (list = network->vsie_list; list; list = list->next) { - unsigned char *ie = (unsigned char *)list->data; - vsie = (unsigned char *)g_try_malloc0(ie[1]+2); // tag number size(1), tag length size(1) - - if (vsie) { - memcpy(vsie, ie, ie[1]+2); - vsie_list = g_slist_append(vsie_list, vsie); - } else - SUPPLICANT_DBG("Failed to allocate memory"); - } } - return vsie_list; + *wifi_vsie_len = network->wifi_vsie_len; + return network->wifi_vsie; } #endif @@ -1544,10 +1710,6 @@ static void interface_network_added(DBusMessageIter *iter, void *user_data) if (g_strcmp0(path, "/") == 0) return; - network = g_hash_table_lookup(interface->net_mapping, path); - if (network) - return; - network = g_try_new0(GSupplicantNetwork, 1); if (!network) return; @@ -1573,19 +1735,8 @@ static void interface_network_added(DBusMessageIter *iter, void *user_data) static void interface_network_removed(DBusMessageIter *iter, void *user_data) { - GSupplicantInterface *interface = user_data; - GSupplicantNetwork *network; - const char *path = NULL; - - dbus_message_iter_get_basic(iter, &path); - if (!path) - return; - - network = g_hash_table_lookup(interface->net_mapping, path); - if (!network) - return; - - g_hash_table_remove(interface->net_mapping, path); + SUPPLICANT_DBG(""); + return; } static char *create_name(unsigned char *ssid, int ssid_len) @@ -1656,7 +1807,7 @@ static char *create_group(struct g_supplicant_bss *bss) return g_string_free(str, FALSE); } -static void add_or_replace_bss_to_network(struct g_supplicant_bss *bss) +static int add_or_replace_bss_to_network(struct g_supplicant_bss *bss) { GSupplicantInterface *interface = bss->interface; GSupplicantNetwork *network; @@ -1666,7 +1817,7 @@ static void add_or_replace_bss_to_network(struct g_supplicant_bss *bss) SUPPLICANT_DBG("New group created: %s", group); if (!group) - return; + return -ENOMEM; network = g_hash_table_lookup(interface->network_table, group); if (network) { @@ -1679,7 +1830,7 @@ static void add_or_replace_bss_to_network(struct g_supplicant_bss *bss) network = g_try_new0(GSupplicantNetwork, 1); if (!network) { g_free(group); - return; + return -ENOMEM; } network->interface = interface; @@ -1698,18 +1849,14 @@ static void add_or_replace_bss_to_network(struct g_supplicant_bss *bss) #if defined TIZEN_EXT network->keymgmt = bss->keymgmt; - if (g_slist_length(bss->vsie_list) > 0) { - GSList *list = NULL; - unsigned char *vsie = NULL; - for (list = bss->vsie_list; list; list = list->next) { - unsigned char *ie = (unsigned char *)list->data; - vsie = (unsigned char *)g_try_malloc0(ie[1]+2); // tag number size(1), tag length size(1) - - if (vsie) { - memcpy(vsie, ie, ie[1]+2); - network->vsie_list = g_slist_append(network->vsie_list, vsie); - } else - SUPPLICANT_DBG("Failed to allocate memory."); + if (bss->wifi_vsie_len > 0) { + SUPPLICANT_DBG("vsie len: %d", bss->wifi_vsie_len); + network->wifi_vsie = (char *)g_try_malloc0(bss->wifi_vsie_len); + if(network->wifi_vsie) { + network->wifi_vsie_len = bss->wifi_vsie_len; + memcpy(network->wifi_vsie, bss->wifi_vsie, network->wifi_vsie_len); + } else { + SUPPLICANT_DBG("Failed to allocate memory for wifi_vsie"); } } @@ -1736,7 +1883,12 @@ done: network->wps_capabilities |= bss->wps_capabilities; } - if (bss->signal > network->signal) { + /* + * Do not change best BSS if we are connected. It will be done through + * CurrentBSS property in case of misalignment with wpa_s or roaming. + */ + if (network != interface->current_network && + bss->signal > network->signal) { network->signal = bss->signal; network->best_bss = bss; callback_network_changed(network, "Signal"); @@ -1746,6 +1898,8 @@ done: g_hash_table_replace(network->bss_table, bss->path, bss); g_hash_table_replace(bss_mapping, bss->path, interface); + + return 0; } static void bss_rates(DBusMessageIter *iter, void *user_data) @@ -1893,6 +2047,9 @@ static void bss_process_ies(DBusMessageIter *iter, void *user_data) { struct g_supplicant_bss *bss = user_data; const unsigned char WPS_OUI[] = { 0x00, 0x50, 0xf2, 0x04 }; +#if defined TIZEN_EXT + const unsigned char WIFI_OUI[] = {0x00, 0x16, 0x32}; +#endif unsigned char *ie, *ie_end; DBusMessageIter array; unsigned int value; @@ -1924,20 +2081,16 @@ static void bss_process_ies(DBusMessageIter *iter, void *user_data) for (ie_end = ie + ie_len; ie < ie_end && ie + ie[1] + 1 <= ie_end; ie += ie[1] + 2) { #if defined TIZEN_EXT - unsigned char *vsie; - int vsie_len = 0; - if(ie[0] == VENDOR_SPECIFIC_INFO && memcmp(ie+2, WPS_OUI, sizeof(WPS_OUI)) != 0) { - SUPPLICANT_DBG("IE: match vendor specific data"); - - vsie_len = ie[1]+2; // tag number size(1), tag length size(1) - vsie = (unsigned char *)g_try_malloc0(vsie_len); - - if (vsie) { - memcpy(vsie, ie, vsie_len); - bss->vsie_list = g_slist_append(bss->vsie_list, vsie); - } else - SUPPLICANT_DBG("Failed to allocate memory"); - continue; + if((ie[0] == VENDOR_SPECIFIC_INFO) && (memcmp(ie+2, WIFI_OUI, sizeof(WIFI_OUI)) == 0)) { + SUPPLICANT_DBG("IE: match WIFI_OUI"); + bss->wifi_vsie = (char *)g_try_malloc0(ie[1] + 2); // tag number size(1), tag length size(1) + if (bss->wifi_vsie) { + bss->wifi_vsie_len = ie[1] + 2; + memcpy(bss->wifi_vsie, ie, bss->wifi_vsie_len); + } else { + SUPPLICANT_DBG("Failed to allocate memory for wifi_vsie"); + } + continue; } #endif if (ie[0] != WMM_WPA1_WPS_INFO || ie[1] < WPS_INFO_MIN_LEN || @@ -2200,7 +2353,8 @@ static void interface_bss_added_with_keys(DBusMessageIter *iter, supplicant_dbus_property_foreach(iter, bss_property, bss); bss_compute_security(bss); - add_or_replace_bss_to_network(bss); + if (add_or_replace_bss_to_network(bss) < 0) + SUPPLICANT_DBG("add_or_replace_bss_to_network failed"); } static void interface_bss_added_without_keys(DBusMessageIter *iter, @@ -2219,7 +2373,8 @@ static void interface_bss_added_without_keys(DBusMessageIter *iter, bss_property, bss, NULL); bss_compute_security(bss); - add_or_replace_bss_to_network(bss); + if (add_or_replace_bss_to_network(bss) < 0) + SUPPLICANT_DBG("add_or_replace_bss_to_network failed"); } static void update_signal(gpointer key, gpointer value, @@ -2245,6 +2400,75 @@ static void update_network_signal(GSupplicantNetwork *network) SUPPLICANT_DBG("New network signal %d", network->signal); } +static void interface_current_bss(GSupplicantInterface *interface, + DBusMessageIter *iter) +{ + GSupplicantNetwork *network; + struct g_supplicant_bss *bss; + const char *path; + + dbus_message_iter_get_basic(iter, &path); + if (g_strcmp0(path, "/") == 0) { + interface->current_network = NULL; + return; + } + + interface_bss_added_without_keys(iter, interface); + + network = g_hash_table_lookup(interface->bss_mapping, path); + if (!network) + return; + + bss = g_hash_table_lookup(network->bss_table, path); + if (!bss) + return; + + interface->current_network = network; + + if (bss != network->best_bss) { + /* + * This is the case where either wpa_s got associated + * to a BSS different than the one ConnMan considers + * the best, or we are roaming. + */ + SUPPLICANT_DBG("Update best BSS for %s", network->name); + + network->best_bss = bss; + + if (network->signal != bss->signal) { + SUPPLICANT_DBG("New network signal %d dBm", + bss->signal); + + network->signal = bss->signal; + callback_network_changed(network, "Signal"); + } + } + + /* + * wpa_s could notify about CurrentBSS in any state once + * it got associated. It is not sure such notification will + * arrive together with transition to ASSOCIATED state. + * In fact, for networks with security WEP or OPEN, it + * always arrives together with transition to COMPLETED. + */ + switch (interface->state) { + case G_SUPPLICANT_STATE_UNKNOWN: + case G_SUPPLICANT_STATE_DISABLED: + case G_SUPPLICANT_STATE_DISCONNECTED: + case G_SUPPLICANT_STATE_INACTIVE: + case G_SUPPLICANT_STATE_SCANNING: + case G_SUPPLICANT_STATE_AUTHENTICATING: + case G_SUPPLICANT_STATE_ASSOCIATING: + return; + case G_SUPPLICANT_STATE_ASSOCIATED: + case G_SUPPLICANT_STATE_4WAY_HANDSHAKE: + case G_SUPPLICANT_STATE_GROUP_HANDSHAKE: + case G_SUPPLICANT_STATE_COMPLETED: + callback_network_associated(network); + break; + } +} + static void interface_bss_removed(DBusMessageIter *iter, void *user_data) { GSupplicantInterface *interface = user_data; @@ -2279,10 +2503,37 @@ static void interface_bss_removed(DBusMessageIter *iter, void *user_data) static void set_config_methods(DBusMessageIter *iter, void *user_data) { - const char *config_methods = "push_button"; + dbus_message_iter_append_basic(iter, DBUS_TYPE_STRING, user_data); +} + +static void wps_property(const char *key, DBusMessageIter *iter, + void *user_data) +{ + GSupplicantInterface *interface = user_data; + + if (!interface) + return; + + SUPPLICANT_DBG("key: %s", key); + + if (g_strcmp0(key, "ConfigMethods") == 0) { + const char *config_methods = "push_button", *str = NULL; + + dbus_message_iter_get_basic(iter, &str); + if (str && strlen(str) > 0) { + /* It was already set at wpa_s level, don't modify it. */ + SUPPLICANT_DBG("%s", str); + return; + } + + supplicant_dbus_property_set(interface->path, + SUPPLICANT_INTERFACE ".Interface.WPS", + "ConfigMethods", DBUS_TYPE_STRING_AS_STRING, + set_config_methods, NULL, &config_methods, NULL); + + SUPPLICANT_DBG("No value. Set %s", config_methods); + } - dbus_message_iter_append_basic(iter, DBUS_TYPE_STRING, - &config_methods); } static void interface_property(const char *key, DBusMessageIter *iter, @@ -2311,11 +2562,9 @@ static void interface_property(const char *key, DBusMessageIter *iter, debug_strvalmap("Mode capability", mode_capa_map, interface->mode_capa); - - supplicant_dbus_property_set(interface->path, + supplicant_dbus_property_get_all(interface->path, SUPPLICANT_INTERFACE ".Interface.WPS", - "ConfigMethods", DBUS_TYPE_STRING_AS_STRING, - set_config_methods, NULL, NULL, NULL); + wps_property, interface, interface); if (interface->ready) callback_interface_added(interface); @@ -2339,6 +2588,14 @@ static void interface_property(const char *key, DBusMessageIter *iter, interface->state = string2state(str); callback_interface_state(interface); } + + if (interface->ap_create_in_progress) { + if (interface->state == G_SUPPLICANT_STATE_DISCONNECTED) + callback_ap_create_fail(interface); + + interface->ap_create_in_progress = false; + } + if (interface->state == G_SUPPLICANT_STATE_DISABLED) interface->ready = FALSE; else @@ -2386,8 +2643,17 @@ static void interface_property(const char *key, DBusMessageIter *iter, g_free(interface->bridge); interface->bridge = g_strdup(str); } + } else if (g_strcmp0(key, "ConfigFile") == 0) { + const char *str = NULL; + + dbus_message_iter_get_basic(iter, &str); + if (str && strlen(str) > 0 && interface->ifname) { + SUPPLICANT_DBG("New {%s, %s}", interface->ifname, str); + g_hash_table_replace(config_file_table, + g_strdup(interface->ifname), g_strdup(str)); + } } else if (g_strcmp0(key, "CurrentBSS") == 0) { - interface_bss_added_without_keys(iter, interface); + interface_current_bss(interface, iter); } else if (g_strcmp0(key, "CurrentNetwork") == 0) { #if defined TIZEN_EXT if (interface->state != G_SUPPLICANT_STATE_COMPLETED) @@ -2414,9 +2680,10 @@ static void interface_property(const char *key, DBusMessageIter *iter, dbus_message_iter_get_basic(iter, &status_code); callback_assoc_status_code(interface, status_code); } - } else + } else { SUPPLICANT_DBG("key %s type %c", key, dbus_message_iter_get_arg_type(iter)); + } } static void scan_network_update(DBusMessageIter *iter, void *user_data) @@ -2489,8 +2756,6 @@ static GSupplicantInterface *interface_alloc(const char *path) g_str_equal, NULL, remove_peer); interface->group_table = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, remove_group); - interface->net_mapping = g_hash_table_new_full(g_str_hash, g_str_equal, - NULL, NULL); interface->bss_mapping = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, NULL); @@ -2503,6 +2768,7 @@ static void interface_added(DBusMessageIter *iter, void *user_data) { GSupplicantInterface *interface; const char *path = NULL; + bool properties_appended = GPOINTER_TO_UINT(user_data); SUPPLICANT_DBG(""); @@ -2521,18 +2787,20 @@ static void interface_added(DBusMessageIter *iter, void *user_data) if (!interface) return; + if (!properties_appended) { + supplicant_dbus_property_get_all(path, + SUPPLICANT_INTERFACE ".Interface", + interface_property, interface, + interface); + return; + } + dbus_message_iter_next(iter); if (dbus_message_iter_get_arg_type(iter) != DBUS_TYPE_INVALID) { supplicant_dbus_property_foreach(iter, interface_property, interface); interface_property(NULL, NULL, interface); - return; } - - supplicant_dbus_property_get_all(path, - SUPPLICANT_INTERFACE ".Interface", - interface_property, interface, - interface); } static void interface_removed(DBusMessageIter *iter, void *user_data) @@ -2635,6 +2903,7 @@ static void signal_name_owner_changed(const char *path, DBusMessageIter *iter) g_hash_table_remove_all(bss_mapping); g_hash_table_remove_all(peer_mapping); g_hash_table_remove_all(group_mapping); + g_hash_table_remove_all(config_file_table); g_hash_table_remove_all(interface_table); callback_system_killed(); } @@ -2662,7 +2931,7 @@ static void signal_interface_added(const char *path, DBusMessageIter *iter) SUPPLICANT_DBG("path %s %s", path, SUPPLICANT_PATH); if (g_strcmp0(path, SUPPLICANT_PATH) == 0) - interface_added(iter, NULL); + interface_added(iter, GUINT_TO_POINTER(true)); } static void signal_interface_removed(const char *path, DBusMessageIter *iter) @@ -2828,7 +3097,14 @@ static void signal_bss_changed(const char *path, DBusMessageIter *iter) g_hash_table_remove(interface->network_table, network->group); - add_or_replace_bss_to_network(new_bss); + if (add_or_replace_bss_to_network(new_bss) < 0) { + /* Remove entries in hash tables to handle the + * failure in add_or_replace_bss_to_network + */ + g_hash_table_remove(bss_mapping, path); + g_hash_table_remove(interface->bss_mapping, path); + g_hash_table_remove(network->bss_table, path); + } return; } @@ -2841,6 +3117,10 @@ static void signal_bss_changed(const char *path, DBusMessageIter *iter) network->wps = FALSE; #endif + /* Consider only property changes of the connected BSS */ + if (network == interface->current_network && bss != network->best_bss) + return; + if (bss->signal == network->signal) #ifndef TIZEN_EXT return; @@ -3097,7 +3377,7 @@ static void peer_groups_relation(DBusMessageIter *iter, void *user_data) if (!group) return; - elem = g_slist_find_custom(data->old_groups, str, g_str_equal); + elem = g_slist_find_custom(data->old_groups, str, (GCompareFunc)g_strcmp0); if (elem) { data->old_groups = g_slist_remove_link(data->old_groups, elem); peer->groups = g_slist_concat(elem, peer->groups); @@ -3717,6 +3997,7 @@ int g_supplicant_set_country(const char *alpha2, const void *user_data) { struct supplicant_regdom *regdom; + int ret; SUPPLICANT_DBG("Country setting %s", alpha2); @@ -3731,10 +4012,15 @@ int g_supplicant_set_country(const char *alpha2, regdom->alpha2 = alpha2; regdom->user_data = user_data; - return supplicant_dbus_property_set(SUPPLICANT_PATH, SUPPLICANT_INTERFACE, + ret = supplicant_dbus_property_set(SUPPLICANT_PATH, SUPPLICANT_INTERFACE, "Country", DBUS_TYPE_STRING_AS_STRING, country_params, country_result, regdom, NULL); + if (ret < 0) { + dbus_free(regdom); + SUPPLICANT_DBG("Unable to set Country configuration"); + } + return ret; } int g_supplicant_interface_set_country(GSupplicantInterface *interface, @@ -3743,6 +4029,7 @@ int g_supplicant_interface_set_country(GSupplicantInterface *interface, void *user_data) { struct supplicant_regdom *regdom; + int ret; regdom = dbus_malloc0(sizeof(*regdom)); if (!regdom) @@ -3752,11 +4039,17 @@ int g_supplicant_interface_set_country(GSupplicantInterface *interface, regdom->alpha2 = alpha2; regdom->user_data = user_data; - return supplicant_dbus_property_set(interface->path, + ret = supplicant_dbus_property_set(interface->path, SUPPLICANT_INTERFACE ".Interface", "Country", DBUS_TYPE_STRING_AS_STRING, country_params, country_result, regdom, NULL); + if (ret < 0) { + dbus_free(regdom); + SUPPLICANT_DBG("Unable to set Country configuration"); + } + + return ret; } bool g_supplicant_interface_has_p2p(GSupplicantInterface *interface) @@ -3896,43 +4189,6 @@ GSupplicantPeer *g_supplicant_interface_peer_lookup(GSupplicantInterface *interf return peer; } -struct interface_data { - GSupplicantInterface *interface; - char *path; /* Interface path cannot be taken from interface (above) as - * it might have been freed already. - */ - GSupplicantInterfaceCallback callback; - void *user_data; -}; - -struct interface_create_data { - char *ifname; - char *driver; - char *bridge; - GSupplicantInterface *interface; - GSupplicantInterfaceCallback callback; - void *user_data; -}; - -struct interface_connect_data { - GSupplicantInterface *interface; - char *path; - GSupplicantInterfaceCallback callback; - union { - GSupplicantSSID *ssid; - GSupplicantPeerParams *peer; - }; - void *user_data; -}; - -struct interface_scan_data { - GSupplicantInterface *interface; - char *path; - GSupplicantInterfaceCallback callback; - GSupplicantScanParams *scan_params; - void *user_data; -}; - static void interface_create_data_free(struct interface_create_data *data) { g_free(data->ifname); @@ -4026,6 +4282,7 @@ static void interface_create_params(DBusMessageIter *iter, void *user_data) { struct interface_create_data *data = user_data; DBusMessageIter dict; + char *config_file = NULL; SUPPLICANT_DBG(""); @@ -4042,6 +4299,14 @@ static void interface_create_params(DBusMessageIter *iter, void *user_data) supplicant_dbus_dict_append_basic(&dict, "BridgeIfname", DBUS_TYPE_STRING, &data->bridge); + config_file = g_hash_table_lookup(config_file_table, data->ifname); + if (config_file) { + SUPPLICANT_DBG("[%s] ConfigFile %s", data->ifname, config_file); + + supplicant_dbus_dict_append_basic(&dict, "ConfigFile", + DBUS_TYPE_STRING, &config_file); + } + supplicant_dbus_dict_close(iter, &dict); } @@ -4162,6 +4427,7 @@ static void interface_remove_result(const char *error, if (error) { err = -EIO; + SUPPLICANT_DBG("error: %s", error); goto done; } @@ -4470,7 +4736,7 @@ int g_supplicant_interface_scan(GSupplicantInterface *interface, static int parse_supplicant_error(DBusMessageIter *iter) { - int err = -ECANCELED; + int err = -ECONNABORTED; char *key; if (!iter) @@ -4554,9 +4820,10 @@ static void interface_add_network_result(const char *error, SUPPLICANT_DBG("PATH: %s", path); - g_free(interface->network_path); interface->network_path = g_strdup(path); + store_network_information(interface, data->ssid); + #if defined TIZEN_EXT SUPPLICANT_DBG(".Interface.SelectNetworkFreq"); #endif @@ -4888,6 +5155,30 @@ static void add_network_security_eap(DBusMessageIter *dict, DBUS_TYPE_STRING, &ssid->identity); #endif + if(ssid->anonymous_identity) + supplicant_dbus_dict_append_basic(dict, "anonymous_identity", + DBUS_TYPE_STRING, + &ssid->anonymous_identity); + + if(ssid->subject_match) + supplicant_dbus_dict_append_basic(dict, "subject_match", + DBUS_TYPE_STRING, + &ssid->subject_match); + + if(ssid->altsubject_match) + supplicant_dbus_dict_append_basic(dict, "altsubject_match", + DBUS_TYPE_STRING, + &ssid->altsubject_match); + + if(ssid->domain_suffix_match) + supplicant_dbus_dict_append_basic(dict, "domain_suffix_match", + DBUS_TYPE_STRING, + &ssid->domain_suffix_match); + + if(ssid->domain_match) + supplicant_dbus_dict_append_basic(dict, "domain_match", + DBUS_TYPE_STRING, + &ssid->domain_match); g_free(eap_value); } @@ -5200,6 +5491,7 @@ static void wps_process_credentials(DBusMessageIter *iter, void *user_data) dbus_message_iter_append_basic(iter, DBUS_TYPE_BOOLEAN, &credentials); } + #if defined TIZEN_EXT #define NETCONFIG_SERVICE "net.netconfig" #define NETCONFIG_WIFI_PATH "/net/netconfig/wifi" @@ -5248,13 +5540,11 @@ static void decryption_request_reply(DBusPendingCall *call, if (dbus_set_error_from_message(&error, reply)) { SUPPLICANT_DBG("decryption_request_reply() %s %s", error.name, error.message); dbus_error_free(&error); - ret = -EINVAL; goto done; } if (dbus_message_iter_init(reply, &args) == FALSE) { SUPPLICANT_DBG("dbus_message_iter_init() failed"); - ret = -EINVAL; goto done; } @@ -5269,7 +5559,6 @@ static void decryption_request_reply(DBusPendingCall *call, interface_add_network_result, data, data->interface); -done: if (ret < 0) { SUPPLICANT_DBG("AddNetwork failed %d", ret); callback_assoc_failed(decrypt_request_data.data->user_data); @@ -5278,6 +5567,7 @@ done: dbus_free(data); } +done: dbus_message_unref(reply); dbus_pending_call_unref(call); @@ -5338,7 +5628,10 @@ int g_supplicant_interface_connect(GSupplicantInterface *interface, void *user_data) { struct interface_connect_data *data; - int ret; + struct interface_data *intf_data; + int ret = 0; + + SUPPLICANT_DBG(""); if (!interface) return -EINVAL; @@ -5367,19 +5660,64 @@ int g_supplicant_interface_connect(GSupplicantInterface *interface, SUPPLICANT_INTERFACE ".Interface.WPS", "ProcessCredentials", DBUS_TYPE_BOOLEAN_AS_STRING, wps_process_credentials, wps_start, data, interface); - } else -#if defined TIZEN_EXT - if (ssid->passphrase && g_strcmp0(ssid->passphrase, "") != 0) { - ret = send_decryption_request(ssid->passphrase, data); - if (ret < 0) - SUPPLICANT_DBG("Decryption request failed %d", ret); + } else { + /* By the time there is a request for connect and the network + * path is not NULL it means that connman has not removed the + * previous network pointer. This can happen in the case AP + * deauthenticated client and connman does not remove the + * previously connected network pointer. This causes supplicant + * to reallocate the memory for struct wpa_ssid again even if it + * is the same SSID. This causes memory usage of wpa_supplicnat + * to go high. The idea here is that if the previously connected + * network is not removed at the time of next connection attempt + * check if the network path is not NULL. In case it is non-NULL + * first remove the network and then once removal is successful, add + * the network. + */ + + if (interface->network_path != NULL) { + g_free(data->path); + dbus_free(data); + + /* + * If this add network is for the same network for + * which wpa_supplicant already has a profile then do + * not need to add another profile. Only if the + * profile that needs to get added is different from + * what is there in wpa_s delete the current one. A + * network is identified by its SSID, security_type + * and passphrase (private passphrase in case security + * type is 802.11x). + */ + if (compare_network_parameters(interface, ssid)) { + return -EALREADY; + } + + intf_data = dbus_malloc0(sizeof(*intf_data)); + if (!intf_data) + return -ENOMEM; + + intf_data->interface = interface; + intf_data->path = g_strdup(interface->path); + intf_data->callback = callback; + intf_data->ssid = ssid; + intf_data->user_data = user_data; + intf_data->network_remove_in_progress = TRUE; + network_remove(intf_data); } else +#if defined TIZEN_EXT + if (ssid->passphrase && g_strcmp0(ssid->passphrase, "") != 0) { + ret = send_decryption_request(ssid->passphrase, data); + if (ret < 0) + SUPPLICANT_DBG("Decryption request failed %d", ret); + } else #endif - ret = supplicant_dbus_method_call(interface->path, - SUPPLICANT_INTERFACE ".Interface", "AddNetwork", - interface_add_network_params, - interface_add_network_result, data, - interface); + ret = supplicant_dbus_method_call(interface->path, + SUPPLICANT_INTERFACE ".Interface", "AddNetwork", + interface_add_network_params, + interface_add_network_result, data, + interface); + } if (ret < 0) { g_free(data->path); @@ -5394,22 +5732,47 @@ static void network_remove_result(const char *error, DBusMessageIter *iter, void *user_data) { struct interface_data *data = user_data; + struct interface_connect_data *connect_data; int result = 0; SUPPLICANT_DBG(""); if (error) { result = -EIO; + SUPPLICANT_DBG("error: %s", error); + if (g_strcmp0("org.freedesktop.DBus.Error.UnknownMethod", error) == 0) result = -ECONNABORTED; } - g_free(data->path); + g_free(data->interface->network_path); + data->interface->network_path = NULL; - if (data->callback) - data->callback(result, data->interface, data->user_data); + remove_network_information(data->interface); + + if (data->network_remove_in_progress == TRUE) { + data->network_remove_in_progress = FALSE; + connect_data = dbus_malloc0(sizeof(*connect_data)); + if (!connect_data) + return; + + connect_data->interface = data->interface; + connect_data->path = g_strdup(data->path); + connect_data->callback = data->callback; + connect_data->ssid = data->ssid; + connect_data->user_data = data->user_data; + supplicant_dbus_method_call(data->interface->path, + SUPPLICANT_INTERFACE ".Interface", "AddNetwork", + interface_add_network_params, + interface_add_network_result, connect_data, + connect_data->interface); + } else { + if (data->callback) + data->callback(result, data->interface, data->user_data); + } + g_free(data->path); dbus_free(data); } @@ -5455,25 +5818,31 @@ static void interface_disconnect_result(const char *error, if (error) { result = -EIO; + SUPPLICANT_DBG("error: %s", error); + if (g_strcmp0("org.freedesktop.DBus.Error.UnknownMethod", error) == 0) result = -ECONNABORTED; } - if (result < 0 && data->callback) { - data->callback(result, data->interface, data->user_data); - data->callback = NULL; - } - /* If we are disconnecting from previous WPS successful * association. i.e.: it did not went through AddNetwork, * and interface->network_path was never set. */ if (!data->interface->network_path) { + if (data->callback) + data->callback(result, data->interface, + data->user_data); + g_free(data->path); dbus_free(data); return; } + if (result < 0 && data->callback) { + data->callback(result, data->interface, data->user_data); + data->callback = NULL; + } + if (result != -ECONNABORTED) { if (network_remove(data) < 0) { g_free(data->path); @@ -5630,8 +5999,10 @@ static void interface_p2p_connect_result(const char *error, SUPPLICANT_DBG(""); - if (error) + if (error) { + SUPPLICANT_DBG("error: %s", error); err = parse_supplicant_error(iter); + } if (data->callback) data->callback(err, data->interface, data->user_data); @@ -5689,6 +6060,9 @@ int g_supplicant_interface_p2p_connect(GSupplicantInterface *interface, return -ENOTSUP; data = dbus_malloc0(sizeof(*data)); + if (!data) + return -ENOMEM; + data->interface = interface; data->path = g_strdup(interface->path); data->peer = peer_params; @@ -5833,6 +6207,9 @@ int g_supplicant_interface_p2p_add_service(GSupplicantInterface *interface, return -ENOTSUP; data = dbus_malloc0(sizeof(*data)); + if (!data) + return -ENOMEM; + data->registration = true; data->interface = interface; data->service = p2p_service_params; @@ -5863,6 +6240,9 @@ int g_supplicant_interface_p2p_del_service(GSupplicantInterface *interface, return -ENOTSUP; data = dbus_malloc0(sizeof(*data)); + if (!data) + return -ENOMEM; + data->interface = interface; data->service = p2p_service_params; @@ -5948,6 +6328,9 @@ int g_supplicant_set_widi_ies(GSupplicantP2PServiceParams *p2p_service_params, return -EFAULT; data = dbus_malloc0(sizeof(*data)); + if (!data) + return -ENOMEM; + data->service = p2p_service_params; data->callback = callback; data->user_data = user_data; @@ -6062,6 +6445,8 @@ int g_supplicant_register(const GSupplicantCallbacks *callbacks) NULL, NULL); pending_peer_connection = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, NULL); + config_file_table = g_hash_table_new_full(g_str_hash, g_str_equal, + g_free, g_free); supplicant_dbus_setup(connection); @@ -6139,6 +6524,11 @@ void g_supplicant_unregister(const GSupplicantCallbacks *callbacks) g_supplicant_filter, NULL); } + if (config_file_table) { + g_hash_table_destroy(config_file_table); + config_file_table = NULL; + } + if (bss_mapping) { g_hash_table_destroy(bss_mapping); bss_mapping = NULL; diff --git a/gweb/gresolv.c b/gweb/gresolv.c index 93f156ea..cf16a48c 100755 --- a/gweb/gresolv.c +++ b/gweb/gresolv.c @@ -181,17 +181,15 @@ static void find_srcaddr(struct sort_result *res) if (fd < 0) return; - if (connect(fd, &res->dst.sa, sizeof(res->dst)) < 0) { - close(fd); - return; - } + if (connect(fd, &res->dst.sa, sizeof(res->dst)) < 0) + goto out; - if (getsockname(fd, &res->src.sa, &sl) < 0) { - close(fd); - return; - } + if (getsockname(fd, &res->src.sa, &sl) < 0) + goto out; res->reachable = true; + +out: close(fd); } diff --git a/gweb/gweb.c b/gweb/gweb.c index 307164e9..7037cd94 100755 --- a/gweb/gweb.c +++ b/gweb/gweb.c @@ -792,6 +792,9 @@ static void handle_multi_line(struct web_session *session) char *str; gchar *value; + if (!session->result.last_key) + return; + str = session->current_header->str; if (str[0] != ' ' && str[0] != '\t') @@ -1079,7 +1082,6 @@ static int connect_session_transport(struct web_session *session) session->addr->ai_addrlen) < 0) { if (errno != EINPROGRESS) { debug(session->web, "connect() %s", strerror(errno)); - close(sk); return -EIO; } } @@ -1360,8 +1362,7 @@ static guint do_request(GWeb *web, const char *url, g_free(session->address); session->address = g_strdup(host); } - session->address_action = g_timeout_add(0, already_resolved, - session); + session->address_action = g_idle_add(already_resolved, session); } else { session->resolv_action = g_resolv_lookup_hostname(web->resolv, host, resolv_result, session); @@ -1480,6 +1481,9 @@ GWebParser *g_web_parser_new(const char *begin, const char *end, { GWebParser *parser; + if (!begin || !end) + return NULL; + parser = g_try_new0(GWebParser, 1); if (!parser) return NULL; @@ -1488,12 +1492,6 @@ GWebParser *g_web_parser_new(const char *begin, const char *end, parser->begin_token = g_strdup(begin); parser->end_token = g_strdup(end); - - if (!parser->begin_token) { - g_free(parser); - return NULL; - } - parser->func = func; parser->user_data = user_data; diff --git a/include/device.h b/include/device.h index dafdca25..36b2f550 100755 --- a/include/device.h +++ b/include/device.h @@ -85,10 +85,6 @@ int connman_device_set_scanning(struct connman_device *device, bool connman_device_get_scanning(struct connman_device *device); void connman_device_reset_scanning(struct connman_device *device); -int connman_device_set_disconnected(struct connman_device *device, - bool disconnected); -bool connman_device_get_disconnected(struct connman_device *device); - int connman_device_set_string(struct connman_device *device, const char *key, const char *value); const char *connman_device_get_string(struct connman_device *device, diff --git a/include/network.h b/include/network.h index baf1c01d..4be5fbf0 100755 --- a/include/network.h +++ b/include/network.h @@ -183,10 +183,6 @@ int connman_network_set_blob(struct connman_network *network, const char *key, const void *data, unsigned int size); const void *connman_network_get_blob(struct connman_network *network, const char *key, unsigned int *size); -#if defined TIZEN_EXT -void connman_network_set_vsie_list(struct connman_network *network, GSList *vsie_list); -void *connman_network_get_vsie_list(struct connman_network *network); -#endif struct connman_device *connman_network_get_device(struct connman_network *network); diff --git a/include/provider.h b/include/provider.h index d1a8983b..d28651ad 100755 --- a/include/provider.h +++ b/include/provider.h @@ -124,7 +124,8 @@ struct connman_provider_driver { enum connman_provider_type type; int (*probe) (struct connman_provider *provider); int (*remove) (struct connman_provider *provider); - int (*connect) (struct connman_provider *provider); + int (*connect) (struct connman_provider *provider, + const char *dbus_sender); int (*disconnect) (struct connman_provider *provider); int (*save) (struct connman_provider *provider, GKeyFile *keyfile); int (*set_property) (struct connman_provider *provider, diff --git a/include/service.h b/include/service.h index ff296138..30550233 100755 --- a/include/service.h +++ b/include/service.h @@ -134,6 +134,7 @@ bool connman_service_get_favorite(struct connman_service *service); bool connman_service_get_autoconnect(struct connman_service *service); struct connman_service *connman_service_lookup_from_network(struct connman_network *network); +struct connman_service *connman_service_lookup_from_identifier(const char* identifier); void connman_service_create_ip4config(struct connman_service *service, int index); diff --git a/include/session.h b/include/session.h index 37dfc4e4..5106e886 100755 --- a/include/session.h +++ b/include/session.h @@ -22,6 +22,7 @@ #ifndef __CONNMAN_SESSION_H #define __CONNMAN_SESSION_H +#include <stdint.h> #include <connman/service.h> #ifdef __cplusplus @@ -55,6 +56,12 @@ enum connman_session_id_type { CONNMAN_SESSION_ID_TYPE_LSM = 3, }; +enum connman_session_state { + CONNMAN_SESSION_STATE_DISCONNECTED = 0, + CONNMAN_SESSION_STATE_CONNECTED = 1, + CONNMAN_SESSION_STATE_ONLINE = 2, +}; + struct connman_session; struct connman_session_config { @@ -65,6 +72,8 @@ struct connman_session_config { enum connman_session_type type; bool ecall; GSList *allowed_bearers; + char *allowed_interface; + bool source_ip_rule; }; typedef int (* connman_session_config_func_t) (struct connman_session *session, @@ -83,8 +92,13 @@ struct connman_session_policy { GSList *bearers); bool (*allowed)(struct connman_session *session, struct connman_service *service); + void (*update_session_state)(struct connman_session* session, + enum connman_session_state state); + struct connman_service* (*get_service_for_session)(struct connman_session* session, + GSList* services); }; +uint32_t connman_session_firewall_get_fwmark(struct connman_session *session); int connman_session_policy_register(struct connman_session_policy *config); void connman_session_policy_unregister(struct connman_session_policy *config); diff --git a/include/technology.h b/include/technology.h index 8efe9e74..55bb3dd5 100755 --- a/include/technology.h +++ b/include/technology.h @@ -40,7 +40,7 @@ int connman_technology_tethering_add_station(enum connman_service_type type, const char *mac); int connman_technology_tethering_remove_station(const char *mac); -void connman_technology_tethering_notify(struct connman_technology *technology, +int connman_technology_tethering_notify(struct connman_technology *technology, bool enabled); int connman_technology_set_regdom(const char *alpha2); void connman_technology_regdom_notify(struct connman_technology *technology, @@ -63,7 +63,7 @@ struct connman_technology_driver { int index); int (*set_tethering) (struct connman_technology *technology, const char *identifier, const char *passphrase, - const char *bridge, bool enabled, bool hidden); + const char *bridge, bool enabled); int (*set_regdom) (struct connman_technology *technology, const char *alpha2); }; diff --git a/m4/configmake.m4 b/m4/configmake.m4 new file mode 100644 index 00000000..ef78ebe4 --- /dev/null +++ b/m4/configmake.m4 @@ -0,0 +1,15 @@ +# configmake.m4 serial 2 +dnl Copyright (C) 2010-2015 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# gl_CONFIGMAKE_PREP +# ------------------ +AC_DEFUN([gl_CONFIGMAKE_PREP], +[ + dnl Added in autoconf 2.70 + if test "x$runstatedir" = x; then + AC_SUBST([runstatedir], ['${localstatedir}/run']) + fi +]) diff --git a/packaging/connman.spec b/packaging/connman.spec index e99ae370..0554f9a7 100755 --- a/packaging/connman.spec +++ b/packaging/connman.spec @@ -4,7 +4,7 @@ %bcond_without connman_vpnd Name: connman -Version: 1.29 +Version: 1.35 Release: 26 License: GPL-2.0+ Summary: Connection Manager diff --git a/plugins/bluetooth.c b/plugins/bluetooth.c index f72a4af6..f89edfa0 100755 --- a/plugins/bluetooth.c +++ b/plugins/bluetooth.c @@ -212,7 +212,7 @@ static void pan_connect_cb(DBusMessage *message, void *user_data) DBusMessageIter iter; pan = g_hash_table_lookup(networks, path); - if (!pan) { + if (!pan || !pan->network) { DBG("network already removed"); return; } @@ -236,6 +236,7 @@ static void pan_connect_cb(DBusMessage *message, void *user_data) if (strcmp(dbus_error, "org.bluez.Error.AlreadyConnected") != 0) { + connman_network_set_associating(pan->network, false); connman_network_set_error(pan->network, CONNMAN_NETWORK_ERROR_ASSOCIATE_FAIL); return; @@ -293,7 +294,7 @@ static void pan_disconnect_cb(DBusMessage *message, void *user_data) struct bluetooth_pan *pan; pan = g_hash_table_lookup(networks, path); - if (!pan) { + if (!pan || !pan->network) { DBG("network already removed"); return; } @@ -366,6 +367,7 @@ static void pan_create_nap(struct bluetooth_pan *pan) { struct connman_device *device; const char* role; + const char *adapter; role = proxy_get_role(pan->btdevice_proxy); if (!role) { @@ -373,8 +375,12 @@ static void pan_create_nap(struct bluetooth_pan *pan) return; } - device = g_hash_table_lookup(devices, - proxy_get_string(pan->btdevice_proxy, "Adapter")); + adapter = proxy_get_string(pan->btdevice_proxy, "Adapter"); + + if (!adapter) + return; + + device = g_hash_table_lookup(devices, adapter); if (!device || !connman_device_get_powered(device)) return; @@ -740,21 +746,23 @@ static bool tethering_create(const char *path, struct connman_technology *technology, const char *bridge, bool enabled) { - struct tethering_info *tethering; + struct tethering_info *tethering = g_new0(struct tethering_info, 1); GDBusProxy *proxy; const char *method; bool result; DBG("path %s bridge %s", path, bridge); - if (!bridge) - return -EINVAL; + if (!bridge) { + g_free(tethering); + return false; + } proxy = g_dbus_proxy_new(client, path, "org.bluez.NetworkServer1"); - if (!proxy) + if (!proxy) { + g_free(tethering); return false; - - tethering = g_new0(struct tethering_info, 1); + } tethering->technology = technology; tethering->bridge = g_strdup(bridge); diff --git a/plugins/bluetooth_legacy.c b/plugins/bluetooth_legacy.c deleted file mode 100755 index 16d717ed..00000000 --- a/plugins/bluetooth_legacy.c +++ /dev/null @@ -1,1461 +0,0 @@ -/* - * - * Connection Manager - * - * Copyright (C) 2007-2013 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 <errno.h> -#include <stdlib.h> -#include <string.h> -#include <netinet/ether.h> - -#include <gdbus.h> - -#define CONNMAN_API_SUBJECT_TO_CHANGE -#include <connman/plugin.h> -#include <connman/technology.h> -#include <connman/device.h> -#include <connman/inet.h> -#include <connman/dbus.h> -#include <connman/log.h> - -#define BLUEZ_SERVICE "org.bluez" -#define BLUEZ_MANAGER_INTERFACE BLUEZ_SERVICE ".Manager" -#define BLUEZ_ADAPTER_INTERFACE BLUEZ_SERVICE ".Adapter" -#define BLUEZ_DEVICE_INTERFACE BLUEZ_SERVICE ".Device" -#define BLUEZ_NETWORK_INTERFACE BLUEZ_SERVICE ".Network" -#define BLUEZ_NETWORK_SERVER BLUEZ_SERVICE ".NetworkServer" - -#define LIST_ADAPTERS "ListAdapters" -#define ADAPTER_ADDED "AdapterAdded" -#define ADAPTER_REMOVED "AdapterRemoved" -#define DEVICE_REMOVED "DeviceRemoved" - -#define PEER_CONNECTED "PeerConnected" -#define PEER_DISCONNECTED "PeerDisconnected" - -#define PROPERTY_CHANGED "PropertyChanged" -#define GET_PROPERTIES "GetProperties" -#define SET_PROPERTY "SetProperty" - -#define CONNECT "Connect" -#define DISCONNECT "Disconnect" - -#define REGISTER "Register" -#define UNREGISTER "Unregister" - -#define UUID_NAP "00001116-0000-1000-8000-00805f9b34fb" - -#define TIMEOUT 60000 - -static DBusConnection *connection; - -static GHashTable *bluetooth_devices = NULL; -static GHashTable *bluetooth_networks = NULL; -static GHashTable *pending_networks = NULL; - -static int pan_probe(struct connman_network *network) -{ - GHashTableIter iter; - gpointer key, val; - - g_hash_table_iter_init(&iter, bluetooth_networks); - while (g_hash_table_iter_next(&iter, &key, &val)) { - struct connman_network *known = val; - - if (network != known) - continue; - - DBG("network %p", network); - - return 0; - } - - return -EOPNOTSUPP; -} - -static void pan_remove(struct connman_network *network) -{ - DBG("network %p", network); -} - -static void connect_reply(DBusPendingCall *call, void *user_data) -{ - char *path = user_data; - struct connman_network *network; - DBusMessage *reply; - DBusError error; - const char *interface = NULL; - int index; - - network = g_hash_table_lookup(bluetooth_networks, path); - if (!network) - return; - - DBG("network %p", network); - - reply = dbus_pending_call_steal_reply(call); - - dbus_error_init(&error); - - if (dbus_set_error_from_message(&error, reply)) { - connman_error("%s", error.message); - dbus_error_free(&error); - - goto err; - } - - if (!dbus_message_get_args(reply, &error, DBUS_TYPE_STRING, - &interface, DBUS_TYPE_INVALID)) { - if (dbus_error_is_set(&error)) { - connman_error("%s", error.message); - dbus_error_free(&error); - } else - connman_error("Wrong arguments for connect"); - goto err; - } - - if (!interface) - goto err; - - DBG("interface %s", interface); - - index = connman_inet_ifindex(interface); - - connman_network_set_index(network, index); - - connman_network_set_connected(network, true); - - dbus_message_unref(reply); - - dbus_pending_call_unref(call); - - return; -err: - - connman_network_set_connected(network, false); - - dbus_message_unref(reply); - - dbus_pending_call_unref(call); -} - -static int pan_connect(struct connman_network *network) -{ - const char *path = connman_network_get_string(network, "Path"); - const char *uuid = "nap"; - DBusMessage *message; - DBusPendingCall *call; - - DBG("network %p", network); - - if (!path) - return -EINVAL; - - message = dbus_message_new_method_call(BLUEZ_SERVICE, path, - BLUEZ_NETWORK_INTERFACE, CONNECT); - if (!message) - return -ENOMEM; - - dbus_message_set_auto_start(message, FALSE); - - dbus_message_append_args(message, DBUS_TYPE_STRING, &uuid, - DBUS_TYPE_INVALID); - - if (!dbus_connection_send_with_reply(connection, message, - &call, TIMEOUT * 10)) { - connman_error("Failed to connect service"); - dbus_message_unref(message); - return -EINVAL; - } - - if (!call) { - connman_error("D-Bus connection not available"); - dbus_message_unref(message); - return -EINVAL; - } - - dbus_pending_call_set_notify(call, connect_reply, g_strdup(path), - g_free); - - dbus_message_unref(message); - - return -EINPROGRESS; -} - -static void disconnect_reply(DBusPendingCall *call, void *user_data) -{ - char *path = user_data; - struct connman_network *network; - DBusMessage *reply; - DBusError error; - - network = g_hash_table_lookup(bluetooth_networks, path); - if (!network) - return; - - DBG("network %p", network); - - reply = dbus_pending_call_steal_reply(call); - - dbus_error_init(&error); - - if (dbus_set_error_from_message(&error, reply)) { - connman_error("%s", error.message); - dbus_error_free(&error); - goto done; - } - - if (!dbus_message_get_args(reply, &error, DBUS_TYPE_INVALID)) { - if (dbus_error_is_set(&error)) { - connman_error("%s", error.message); - dbus_error_free(&error); - } else - connman_error("Wrong arguments for disconnect"); - goto done; - } - - connman_network_set_connected(network, false); - -done: - dbus_message_unref(reply); - - dbus_pending_call_unref(call); - - connman_network_unref(network); -} - -static int pan_disconnect(struct connman_network *network) -{ - const char *path = connman_network_get_string(network, "Path"); - DBusMessage *message; - DBusPendingCall *call; - - DBG("network %p", network); - - if (!path) - return -EINVAL; - -#if defined TIZEN_EXT - if (connman_network_get_associating(network) == TRUE) { - connman_network_set_error(network, - CONNMAN_NETWORK_ERROR_ASSOCIATE_FAIL); - } -#endif - - message = dbus_message_new_method_call(BLUEZ_SERVICE, path, - BLUEZ_NETWORK_INTERFACE, DISCONNECT); - if (!message) - return -ENOMEM; - - dbus_message_set_auto_start(message, FALSE); - - dbus_message_append_args(message, DBUS_TYPE_INVALID); - - if (!dbus_connection_send_with_reply(connection, message, - &call, TIMEOUT)) { - connman_error("Failed to disconnect service"); - dbus_message_unref(message); - return -EINVAL; - } - - if (!call) { - connman_error("D-Bus connection not available"); - dbus_message_unref(message); - return -EINVAL; - } - - connman_network_ref(network); - - connman_network_set_associating(network, false); - - dbus_pending_call_set_notify(call, disconnect_reply, g_strdup(path), - g_free); - - dbus_message_unref(message); - - return 0; -} - -static struct connman_network_driver pan_driver = { - .name = "bluetooth_legacy-pan", - .type = CONNMAN_NETWORK_TYPE_BLUETOOTH_PAN, - .priority = CONNMAN_NETWORK_PRIORITY_LOW, - .probe = pan_probe, - .remove = pan_remove, - .connect = pan_connect, - .disconnect = pan_disconnect, -}; - -static gboolean network_changed(DBusConnection *conn, - DBusMessage *message, void *user_data) -{ - const char *path = dbus_message_get_path(message); - struct connman_network *network; - DBusMessageIter iter, value; - const char *key; - - DBG("path %s", path); - - network = g_hash_table_lookup(bluetooth_networks, path); - if (!network) - return TRUE; - - if (!dbus_message_iter_init(message, &iter)) - return TRUE; - - dbus_message_iter_get_basic(&iter, &key); - - dbus_message_iter_next(&iter); - dbus_message_iter_recurse(&iter, &value); - - if (g_str_equal(key, "Connected")) { - dbus_bool_t connected; - - dbus_message_iter_get_basic(&value, &connected); - - if (connected) - return TRUE; - - connman_network_set_associating(network, false); - connman_network_set_connected(network, false); - } - - return TRUE; -} - -static void parse_peer_device(DBusMessage *message, char **dev, - char **address) -{ - const char *path = dbus_message_get_path(message); - DBusMessageIter iter; - - DBG("path %s", path); - - if (dbus_message_iter_init(message, &iter) == FALSE) - return; - - dbus_message_iter_get_basic(&iter, dev); - dbus_message_iter_next(&iter); - dbus_message_iter_get_basic(&iter, address); -} - -static gboolean peer_connected(DBusConnection *connection, - DBusMessage *message, void *user_data) -{ - char *dev, *address; - - parse_peer_device(message, &dev, &address); - - DBG("connection device is %s", dev); - DBG("connection address is %s", address); - - connman_technology_tethering_add_station( - CONNMAN_SERVICE_TYPE_BLUETOOTH, address); - - return TRUE; -} - -static gboolean peer_disconnected(DBusConnection *connection, - DBusMessage *message, void *user_data) -{ - char *dev, *address; - - parse_peer_device(message, &dev, &address); - - DBG("disconnection device is %s", dev); - DBG("disconnection address is %s", address); - - connman_technology_tethering_remove_station(address); - - return TRUE; -} - -static void extract_properties(DBusMessage *reply, const char **parent, - const char **address, - const char **name, - const char **alias, - dbus_bool_t *powered, - dbus_bool_t *scanning, - DBusMessageIter *uuids, - DBusMessageIter *networks) -{ - DBusMessageIter array, dict; - - if (!dbus_message_iter_init(reply, &array)) - return; - - if (dbus_message_iter_get_arg_type(&array) != DBUS_TYPE_ARRAY) - return; - - dbus_message_iter_recurse(&array, &dict); - - while (dbus_message_iter_get_arg_type(&dict) == DBUS_TYPE_DICT_ENTRY) { - DBusMessageIter entry, value; - const char *key; - - dbus_message_iter_recurse(&dict, &entry); - dbus_message_iter_get_basic(&entry, &key); - - dbus_message_iter_next(&entry); - dbus_message_iter_recurse(&entry, &value); - - if (g_str_equal(key, "Adapter")) { - if (parent) - dbus_message_iter_get_basic(&value, parent); - } else if (g_str_equal(key, "Address")) { - if (address) - dbus_message_iter_get_basic(&value, address); - } else if (g_str_equal(key, "Name")) { - if (name) - dbus_message_iter_get_basic(&value, name); - } else if (g_str_equal(key, "Alias")) { - if (alias) - dbus_message_iter_get_basic(&value, alias); - } else if (g_str_equal(key, "Powered")) { - if (powered) - dbus_message_iter_get_basic(&value, powered); - } else if (g_str_equal(key, "Discovering")) { - if (scanning) - dbus_message_iter_get_basic(&value, scanning); - } else if (g_str_equal(key, "Devices")) { - if (networks) - memcpy(networks, &value, sizeof(value)); - } else if (g_str_equal(key, "UUIDs")) { - if (uuids) - memcpy(uuids, &value, sizeof(value)); - } - - dbus_message_iter_next(&dict); - } -} - -static dbus_bool_t has_pan(DBusMessageIter *array) -{ - DBusMessageIter value; - - if (dbus_message_iter_get_arg_type(array) != DBUS_TYPE_ARRAY) - return FALSE; - - dbus_message_iter_recurse(array, &value); - - while (dbus_message_iter_get_arg_type(&value) == DBUS_TYPE_STRING) { - const char *uuid; - - dbus_message_iter_get_basic(&value, &uuid); - - if (g_strcmp0(uuid, UUID_NAP) == 0) - return TRUE; - - dbus_message_iter_next(&value); - } - - return FALSE; -} - -static void network_properties_reply(DBusPendingCall *call, void *user_data) -{ - char *path = user_data; - struct connman_device *device; - struct connman_network *network; - DBusMessage *reply; - DBusMessageIter uuids; - const char *parent = NULL, *address = NULL, *name = NULL; - struct ether_addr addr; - char ident[13]; - - reply = dbus_pending_call_steal_reply(call); - - extract_properties(reply, &parent, &address, NULL, &name, - NULL, NULL, &uuids, NULL); - - if (!parent) - goto done; - - device = g_hash_table_lookup(bluetooth_devices, parent); - if (!device) - goto done; - - if (!address) - goto done; - - ether_aton_r(address, &addr); - - snprintf(ident, 13, "%02x%02x%02x%02x%02x%02x", - addr.ether_addr_octet[0], - addr.ether_addr_octet[1], - addr.ether_addr_octet[2], - addr.ether_addr_octet[3], - addr.ether_addr_octet[4], - addr.ether_addr_octet[5]); - - if (!has_pan(&uuids)) - goto done; - - network = connman_device_get_network(device, ident); - if (network) - goto done; - - network = connman_network_create(ident, - CONNMAN_NETWORK_TYPE_BLUETOOTH_PAN); - if (!network) - goto done; - - connman_network_set_string(network, "Path", path); - - connman_network_set_name(network, name); - - g_hash_table_replace(bluetooth_networks, g_strdup(path), network); - - connman_device_add_network(device, network); - - connman_network_set_group(network, ident); - -done: - dbus_message_unref(reply); - - dbus_pending_call_unref(call); -} - -static void add_network(const char *path) -{ - DBusMessage *message; - DBusPendingCall *call; - - DBG("path %s", path); - - message = dbus_message_new_method_call(BLUEZ_SERVICE, path, - BLUEZ_DEVICE_INTERFACE, GET_PROPERTIES); - if (!message) - return; - - dbus_message_set_auto_start(message, FALSE); - - if (!dbus_connection_send_with_reply(connection, message, - &call, TIMEOUT)) { - connman_error("Failed to get network properties for %s", path); - goto done; - } - - if (!call) { - connman_error("D-Bus connection not available"); - goto done; - } - - dbus_pending_call_set_notify(call, network_properties_reply, - g_strdup(path), g_free); - -done: - dbus_message_unref(message); -} - -static void check_networks(DBusMessageIter *array) -{ - DBusMessageIter value; - - if (dbus_message_iter_get_arg_type(array) != DBUS_TYPE_ARRAY) - return; - - dbus_message_iter_recurse(array, &value); - - while (dbus_message_iter_get_arg_type(&value) == DBUS_TYPE_OBJECT_PATH) { - const char *path; - - dbus_message_iter_get_basic(&value, &path); - - add_network(path); - - dbus_message_iter_next(&value); - } -} - -static void check_pending_networks(const char *adapter) -{ - GSList *networks, *list; - - networks = g_hash_table_lookup(pending_networks, adapter); - if (!networks) - return; - - for (list = networks; list; list = list->next) { - char *path = list->data; - - add_network(path); - } - - g_hash_table_remove(pending_networks, adapter); -} - -static gboolean adapter_changed(DBusConnection *conn, - DBusMessage *message, void *user_data) -{ - const char *path = dbus_message_get_path(message); - struct connman_device *device; - DBusMessageIter iter, value; - const char *key; - - DBG("path %s", path); - - device = g_hash_table_lookup(bluetooth_devices, path); - if (!device) - return TRUE; - - if (!dbus_message_iter_init(message, &iter)) - return TRUE; - - dbus_message_iter_get_basic(&iter, &key); - - dbus_message_iter_next(&iter); - dbus_message_iter_recurse(&iter, &value); - - if (g_str_equal(key, "Powered")) { - dbus_bool_t val; - - dbus_message_iter_get_basic(&value, &val); - connman_device_set_powered(device, val); - if (val) - check_pending_networks(path); - } else if (g_str_equal(key, "Discovering")) { - dbus_bool_t val; - - dbus_message_iter_get_basic(&value, &val); - connman_device_set_scanning(device, - CONNMAN_SERVICE_TYPE_BLUETOOTH, val); - } else if (g_str_equal(key, "Devices")) { - check_networks(&value); - } - - return TRUE; -} - -static gboolean device_removed(DBusConnection *conn, - DBusMessage *message, void *user_data) -{ - const char *network_path; - struct connman_network *network; - struct connman_device *device; - DBusMessageIter iter; - - DBG(""); - - if (!dbus_message_iter_init(message, &iter)) - return TRUE; - - dbus_message_iter_get_basic(&iter, &network_path); - - network = g_hash_table_lookup(bluetooth_networks, network_path); - if (!network) - return TRUE; - - device = connman_network_get_device(network); - if (!device) - return TRUE; - - g_hash_table_remove(bluetooth_networks, network_path); - - return TRUE; -} - -static gboolean device_changed(DBusConnection *conn, - DBusMessage *message, void *user_data) -{ - const char *path = dbus_message_get_path(message); - DBusMessageIter iter, value; - const char *key; - - DBG("path %s", path); - - if (!dbus_message_iter_init(message, &iter)) - return TRUE; - - dbus_message_iter_get_basic(&iter, &key); - - dbus_message_iter_next(&iter); - dbus_message_iter_recurse(&iter, &value); - - DBG("key %s", key); - - if (g_str_equal(key, "UUIDs")) - add_network(path); - - return TRUE; -} - -static void remove_device_networks(struct connman_device *device) -{ - GHashTableIter iter; - gpointer key, value; - GSList *key_list = NULL; - GSList *list; - - if (!bluetooth_networks) - return; - - g_hash_table_iter_init(&iter, bluetooth_networks); - - while (g_hash_table_iter_next(&iter, &key, &value)) { - struct connman_network *network = value; - - if (connman_network_get_device(network) != device) - continue; - - key_list = g_slist_prepend(key_list, key); - } - - for (list = key_list; list; list = list->next) { - const char *network_path = list->data; - - g_hash_table_remove(bluetooth_networks, network_path); - } - - g_slist_free(key_list); -} - -static void add_pending_networks(const char *adapter, DBusMessageIter *array) -{ - DBusMessageIter value; - GSList *list = NULL; - - if (dbus_message_iter_get_arg_type(array) != DBUS_TYPE_ARRAY) - return; - - dbus_message_iter_recurse(array, &value); - - while (dbus_message_iter_get_arg_type(&value) == DBUS_TYPE_OBJECT_PATH) { - const char *path; - - dbus_message_iter_get_basic(&value, &path); - - list = g_slist_prepend(list, g_strdup(path)); - - dbus_message_iter_next(&value); - } - - if (!list) - return; - - g_hash_table_replace(pending_networks, g_strdup(adapter), list); -} - -static void adapter_properties_reply(DBusPendingCall *call, void *user_data) -{ - char *path = user_data; - struct connman_device *device; - DBusMessage *reply; - DBusMessageIter networks; - const char *address = NULL, *name = NULL; - dbus_bool_t powered = FALSE, scanning = FALSE; - struct ether_addr addr; - char ident[13]; - - DBG("path %s", path); - - reply = dbus_pending_call_steal_reply(call); - - if (!path) - goto done; - - extract_properties(reply, NULL, &address, &name, NULL, - &powered, &scanning, NULL, &networks); - - if (!address) - goto done; - - if (g_strcmp0(address, "00:00:00:00:00:00") == 0) - goto done; - - device = g_hash_table_lookup(bluetooth_devices, path); - if (device) - goto update; - - ether_aton_r(address, &addr); - - snprintf(ident, 13, "%02x%02x%02x%02x%02x%02x", - addr.ether_addr_octet[0], - addr.ether_addr_octet[1], - addr.ether_addr_octet[2], - addr.ether_addr_octet[3], - addr.ether_addr_octet[4], - addr.ether_addr_octet[5]); - - device = connman_device_create("bluetooth_legacy", - CONNMAN_DEVICE_TYPE_BLUETOOTH); - if (!device) - goto done; - - g_hash_table_insert(bluetooth_devices, g_strdup(path), device); - - connman_device_set_ident(device, ident); - - connman_device_set_string(device, "Path", path); - - if (connman_device_register(device) < 0) { - connman_device_unref(device); - g_hash_table_remove(bluetooth_devices, path); - goto done; - } - -update: - connman_device_set_string(device, "Address", address); - connman_device_set_string(device, "Name", name); - connman_device_set_string(device, "Path", path); - - connman_device_set_powered(device, powered); - connman_device_set_scanning(device, - CONNMAN_SERVICE_TYPE_BLUETOOTH, scanning); - - if (!powered) { - remove_device_networks(device); - add_pending_networks(path, &networks); - } else - check_networks(&networks); - -done: - dbus_message_unref(reply); - - dbus_pending_call_unref(call); -} - -static void add_adapter(DBusConnection *conn, const char *path) -{ - DBusMessage *message; - DBusPendingCall *call; - - DBG("path %s", path); - - message = dbus_message_new_method_call(BLUEZ_SERVICE, path, - BLUEZ_ADAPTER_INTERFACE, GET_PROPERTIES); - if (!message) - return; - - dbus_message_set_auto_start(message, FALSE); - - if (!dbus_connection_send_with_reply(conn, message, &call, TIMEOUT)) { - connman_error("Failed to get adapter properties for %s", path); - goto done; - } - - if (!call) { - connman_error("D-Bus connection not available"); - goto done; - } - - dbus_pending_call_set_notify(call, adapter_properties_reply, - g_strdup(path), g_free); - -done: - dbus_message_unref(message); -} - -static gboolean adapter_added(DBusConnection *conn, DBusMessage *message, - void *user_data) -{ - const char *path; - - dbus_message_get_args(message, NULL, DBUS_TYPE_OBJECT_PATH, &path, - DBUS_TYPE_INVALID); - add_adapter(conn, path); - return TRUE; -} - -static void remove_adapter(DBusConnection *conn, const char *path) -{ - DBG("path %s", path); - - g_hash_table_remove(bluetooth_devices, path); - g_hash_table_remove(pending_networks, path); -} - -static gboolean adapter_removed(DBusConnection *conn, DBusMessage *message, - void *user_data) -{ - const char *path; - - dbus_message_get_args(message, NULL, DBUS_TYPE_OBJECT_PATH, &path, - DBUS_TYPE_INVALID); - remove_adapter(conn, path); - return TRUE; -} - -static void list_adapters_reply(DBusPendingCall *call, void *user_data) -{ - DBusMessage *reply; - DBusError error; - char **adapters; - int i, num_adapters; - - DBG(""); - - reply = dbus_pending_call_steal_reply(call); - - dbus_error_init(&error); - - if (dbus_set_error_from_message(&error, reply)) { - connman_error("%s", error.message); - dbus_error_free(&error); - goto done; - } - - if (!dbus_message_get_args(reply, &error, DBUS_TYPE_ARRAY, - DBUS_TYPE_OBJECT_PATH, &adapters, - &num_adapters, DBUS_TYPE_INVALID)) { - if (dbus_error_is_set(&error)) { - connman_error("%s", error.message); - dbus_error_free(&error); - } else - connman_error("Wrong arguments for adapter list"); - goto done; - } - - for (i = 0; i < num_adapters; i++) - add_adapter(connection, adapters[i]); - - g_strfreev(adapters); - -done: - dbus_message_unref(reply); - - dbus_pending_call_unref(call); -} - -static void unregister_device(gpointer data) -{ - struct connman_device *device = data; - - DBG(""); - - remove_device_networks(device); - - connman_device_unregister(device); - connman_device_unref(device); -} - -static void remove_network(gpointer data) -{ - struct connman_network *network = data; - struct connman_device *device; - - DBG("network %p", network); - - device = connman_network_get_device(network); - if (device) - connman_device_remove_network(device, network); - - connman_network_unref(network); -} - -static void remove_pending_networks(gpointer data) -{ - GSList *list = data; - - g_slist_free_full(list, g_free); -} - -static void bluetooth_connect(DBusConnection *conn, void *user_data) -{ - DBusMessage *message; - DBusPendingCall *call; - - DBG("connection %p", conn); - - bluetooth_devices = g_hash_table_new_full(g_str_hash, g_str_equal, - g_free, unregister_device); - - bluetooth_networks = g_hash_table_new_full(g_str_hash, g_str_equal, - g_free, remove_network); - - pending_networks = g_hash_table_new_full(g_str_hash, g_str_equal, - g_free, remove_pending_networks); - - message = dbus_message_new_method_call(BLUEZ_SERVICE, "/", - BLUEZ_MANAGER_INTERFACE, LIST_ADAPTERS); - if (!message) - return; - - dbus_message_set_auto_start(message, FALSE); - - if (!dbus_connection_send_with_reply(conn, message, &call, TIMEOUT)) { - connman_error("Failed to get Bluetooth adapters"); - goto done; - } - - if (!call) { - connman_error("D-Bus connection not available"); - goto done; - } - - dbus_pending_call_set_notify(call, list_adapters_reply, NULL, NULL); - -done: - dbus_message_unref(message); -} - -static void bluetooth_disconnect(DBusConnection *conn, void *user_data) -{ - DBG("connection %p", conn); - - if (!bluetooth_devices) - return; - - g_hash_table_destroy(bluetooth_networks); - bluetooth_networks = NULL; - g_hash_table_destroy(bluetooth_devices); - bluetooth_devices = NULL; - g_hash_table_destroy(pending_networks); - pending_networks = NULL; -} - -static int bluetooth_probe(struct connman_device *device) -{ - GHashTableIter iter; - gpointer key, value; - - DBG("device %p", device); - - if (!bluetooth_devices) - return -ENOTSUP; - - g_hash_table_iter_init(&iter, bluetooth_devices); - - while (g_hash_table_iter_next(&iter, &key, &value)) { - struct connman_device *device_pan = value; - - if (device == device_pan) - return 0; - } - - return -ENOTSUP; -} - -static void bluetooth_remove(struct connman_device *device) -{ - DBG("device %p", device); -} - -static void powered_reply(DBusPendingCall *call, void *user_data) -{ - DBusError error; - DBusMessage *reply; - - DBG(""); - - reply = dbus_pending_call_steal_reply(call); - - dbus_error_init(&error); - - if (dbus_set_error_from_message(&error, reply)) { - connman_error("%s", error.message); - dbus_error_free(&error); - dbus_message_unref(reply); - dbus_pending_call_unref(call); - return; - } - - dbus_message_unref(reply); - dbus_pending_call_unref(call); - - add_adapter(connection, user_data); -} - -static int change_powered(DBusConnection *conn, const char *path, - dbus_bool_t powered) -{ - DBusMessage *message; - DBusMessageIter iter; - DBusPendingCall *call; - - DBG(""); - - if (!path) - return -EINVAL; - - message = dbus_message_new_method_call(BLUEZ_SERVICE, path, - BLUEZ_ADAPTER_INTERFACE, SET_PROPERTY); - if (!message) - return -ENOMEM; - - dbus_message_set_auto_start(message, FALSE); - - dbus_message_iter_init_append(message, &iter); - connman_dbus_property_append_basic(&iter, "Powered", - DBUS_TYPE_BOOLEAN, &powered); - - if (!dbus_connection_send_with_reply(conn, message, &call, TIMEOUT)) { - connman_error("Failed to change Powered property"); - dbus_message_unref(message); - return -EINVAL; - } - - if (!call) { - connman_error("D-Bus connection not available"); - dbus_message_unref(message); - return -EINVAL; - } - - dbus_pending_call_set_notify(call, powered_reply, - g_strdup(path), g_free); - - dbus_message_unref(message); - - return -EINPROGRESS; -} - -static int bluetooth_enable(struct connman_device *device) -{ - const char *path = connman_device_get_string(device, "Path"); - - DBG("device %p", device); - - return change_powered(connection, path, TRUE); -} - -static int bluetooth_disable(struct connman_device *device) -{ - const char *path = connman_device_get_string(device, "Path"); - - DBG("device %p", device); - - return change_powered(connection, path, FALSE); -} - -static struct connman_device_driver bluetooth_driver = { - .name = "bluetooth_legacy", - .type = CONNMAN_DEVICE_TYPE_BLUETOOTH, - .probe = bluetooth_probe, - .remove = bluetooth_remove, - .enable = bluetooth_enable, - .disable = bluetooth_disable, -}; - -static int tech_probe(struct connman_technology *technology) -{ - return 0; -} - -static void tech_remove(struct connman_technology *technology) -{ -} - -static void server_register_reply(DBusPendingCall *call, void *user_data) -{ - struct connman_technology *technology = user_data; - DBusError error; - DBusMessage *reply; - - DBG(""); - - reply = dbus_pending_call_steal_reply(call); - - dbus_error_init(&error); - - if (dbus_set_error_from_message(&error, reply)) { - connman_error("%s", error.message); - dbus_error_free(&error); - dbus_message_unref(reply); - dbus_pending_call_unref(call); - return; - } - - dbus_message_unref(reply); - dbus_pending_call_unref(call); - - connman_technology_tethering_notify(technology, true); -} - -static void server_unregister_reply(DBusPendingCall *call, void *user_data) -{ - struct connman_technology *technology = user_data; - DBusError error; - DBusMessage *reply; - - DBG(""); - - reply = dbus_pending_call_steal_reply(call); - - dbus_error_init(&error); - - if (dbus_set_error_from_message(&error, reply)) { - connman_error("%s", error.message); - dbus_error_free(&error); - dbus_message_unref(reply); - dbus_pending_call_unref(call); - return; - } - - dbus_message_unref(reply); - dbus_pending_call_unref(call); - - connman_technology_tethering_notify(technology, false); -} - - -static void server_register(const char *path, const char *uuid, - struct connman_technology *technology, - const char *bridge, bool enabled) -{ - DBusMessage *message; - DBusPendingCall *call; - char *command; - - DBG("path %s enabled %d", path, enabled); - - command = enabled ? REGISTER : UNREGISTER; - - message = dbus_message_new_method_call(BLUEZ_SERVICE, path, - BLUEZ_NETWORK_SERVER, command); - if (!message) - return; - - dbus_message_set_auto_start(message, FALSE); - - dbus_message_append_args(message, DBUS_TYPE_STRING, &uuid, - DBUS_TYPE_INVALID); - - if (enabled) - dbus_message_append_args(message, DBUS_TYPE_STRING, &bridge, - DBUS_TYPE_INVALID); - - if (!dbus_connection_send_with_reply(connection, message, - &call, TIMEOUT)) { - connman_error("Failed to enable PAN server"); - dbus_message_unref(message); - return; - } - - if (!call) { - connman_error("D-Bus connection not available"); - dbus_message_unref(message); - return; - } - - if (enabled) - dbus_pending_call_set_notify(call, server_register_reply, - technology, NULL); - else - dbus_pending_call_set_notify(call, server_unregister_reply, - technology, NULL); - - dbus_message_unref(message); -} - -struct tethering_info { - struct connman_technology *technology; - const char *bridge; -}; - -static void enable_nap(gpointer key, gpointer value, gpointer user_data) -{ - struct tethering_info *info = user_data; - struct connman_device *device = value; - const char *path; - - DBG(""); - - path = connman_device_get_string(device, "Path"); - - server_register(path, "nap", info->technology, info->bridge, true); -} - -static void disable_nap(gpointer key, gpointer value, gpointer user_data) -{ - struct tethering_info *info = user_data; - struct connman_device *device = value; - const char *path; - - DBG(""); - - path = connman_device_get_string(device, "Path"); - - server_register(path, "nap", info->technology, info->bridge, false); -} - -static int tech_set_tethering(struct connman_technology *technology, - const char *identifier, const char *passphrase, - const char *bridge, bool enabled, bool hidden) -{ - struct tethering_info info = { - .technology = technology, - .bridge = bridge, - }; - - DBG("bridge %s", bridge); - - if (!bluetooth_devices) - return -ENOTCONN; - - if (enabled) - g_hash_table_foreach(bluetooth_devices, enable_nap, &info); - else - g_hash_table_foreach(bluetooth_devices, disable_nap, &info); - - return 0; -} - -static struct connman_technology_driver tech_driver = { - .name = "bluetooth_legacy", - .type = CONNMAN_SERVICE_TYPE_BLUETOOTH, - .priority = -10, - .probe = tech_probe, - .remove = tech_remove, - .set_tethering = tech_set_tethering, -}; - -static guint watch; -static guint added_watch; -static guint removed_watch; -static guint adapter_watch; -static guint device_watch; -static guint device_removed_watch; -static guint network_watch; -static guint peerconnected_watch; -static guint peerdisconnected_watch; - -static int bluetooth_init(void) -{ - int err; - - connection = connman_dbus_get_connection(); - if (!connection) - return -EIO; - - watch = g_dbus_add_service_watch(connection, BLUEZ_SERVICE, - bluetooth_connect, bluetooth_disconnect, NULL, NULL); - - added_watch = g_dbus_add_signal_watch(connection, BLUEZ_SERVICE, NULL, - BLUEZ_MANAGER_INTERFACE, - ADAPTER_ADDED, adapter_added, - NULL, NULL); - - removed_watch = g_dbus_add_signal_watch(connection, BLUEZ_SERVICE, NULL, - BLUEZ_MANAGER_INTERFACE, - ADAPTER_REMOVED, adapter_removed, - NULL, NULL); - - adapter_watch = g_dbus_add_signal_watch(connection, BLUEZ_SERVICE, - NULL, BLUEZ_ADAPTER_INTERFACE, - PROPERTY_CHANGED, adapter_changed, - NULL, NULL); - - device_removed_watch = g_dbus_add_signal_watch(connection, - BLUEZ_SERVICE, NULL, - BLUEZ_ADAPTER_INTERFACE, - DEVICE_REMOVED, device_removed, - NULL, NULL); - - device_watch = g_dbus_add_signal_watch(connection, BLUEZ_SERVICE, NULL, - BLUEZ_DEVICE_INTERFACE, - PROPERTY_CHANGED, device_changed, - NULL, NULL); - - network_watch = g_dbus_add_signal_watch(connection, BLUEZ_SERVICE, - NULL, BLUEZ_NETWORK_INTERFACE, - PROPERTY_CHANGED, network_changed, - NULL, NULL); - - peerconnected_watch = g_dbus_add_signal_watch(connection, - BLUEZ_SERVICE, - NULL, BLUEZ_NETWORK_SERVER, - PEER_CONNECTED, peer_connected, - NULL, NULL); - - peerdisconnected_watch = g_dbus_add_signal_watch(connection, - BLUEZ_SERVICE, - NULL, BLUEZ_NETWORK_SERVER, - PEER_DISCONNECTED, - peer_disconnected, - NULL, NULL); - - if (watch == 0 || added_watch == 0 || removed_watch == 0 - || adapter_watch == 0 || network_watch == 0 || device_watch == 0 - || peerconnected_watch == 0 || peerdisconnected_watch == 0 - || device_removed_watch == 0) { - err = -EIO; - goto remove; - } - - err = connman_network_driver_register(&pan_driver); - if (err < 0) - goto remove; - - err = connman_device_driver_register(&bluetooth_driver); - if (err < 0) { - connman_network_driver_unregister(&pan_driver); - goto remove; - } - - err = connman_technology_driver_register(&tech_driver); - if (err < 0) { - connman_device_driver_unregister(&bluetooth_driver); - connman_network_driver_unregister(&pan_driver); - goto remove; - } - - return 0; - -remove: - g_dbus_remove_watch(connection, watch); - g_dbus_remove_watch(connection, added_watch); - g_dbus_remove_watch(connection, removed_watch); - g_dbus_remove_watch(connection, adapter_watch); - g_dbus_remove_watch(connection, device_removed_watch); - g_dbus_remove_watch(connection, device_watch); - g_dbus_remove_watch(connection, network_watch); - g_dbus_remove_watch(connection, peerconnected_watch); - g_dbus_remove_watch(connection, peerdisconnected_watch); - - dbus_connection_unref(connection); - - return err; -} - -static void bluetooth_exit(void) -{ - g_dbus_remove_watch(connection, watch); - g_dbus_remove_watch(connection, added_watch); - g_dbus_remove_watch(connection, removed_watch); - g_dbus_remove_watch(connection, adapter_watch); - g_dbus_remove_watch(connection, device_removed_watch); - g_dbus_remove_watch(connection, device_watch); - g_dbus_remove_watch(connection, network_watch); - g_dbus_remove_watch(connection, peerconnected_watch); - g_dbus_remove_watch(connection, peerdisconnected_watch); - - /* - * We unset the disabling of the Bluetooth device when shutting down - * so that non-PAN BT connections are not affected. - */ - bluetooth_driver.disable = NULL; - - bluetooth_disconnect(connection, NULL); - - connman_technology_driver_unregister(&tech_driver); - - connman_device_driver_unregister(&bluetooth_driver); - connman_network_driver_unregister(&pan_driver); - - dbus_connection_unref(connection); -} - -CONNMAN_PLUGIN_DEFINE(bluetooth_legacy, "Bluetooth technology plugin (legacy)", - VERSION, CONNMAN_PLUGIN_PRIORITY_LOW, - bluetooth_init, bluetooth_exit) diff --git a/plugins/ethernet.c b/plugins/ethernet.c index 73494f15..9a4d7413 100755 --- a/plugins/ethernet.c +++ b/plugins/ethernet.c @@ -32,6 +32,7 @@ #include <linux/if_vlan.h> #include <linux/sockios.h> +#include <linux/ethtool.h> #ifndef IFF_LOWER_UP #define IFF_LOWER_UP 0x10000 @@ -83,6 +84,48 @@ static int get_vlan_vid(const char *ifname) return vid; } +static int get_dsa_port(const char *ifname) +{ + int sk; + int dsaport = -1; + struct ifreq ifr; + struct ethtool_cmd cmd; + struct ethtool_drvinfo drvinfocmd; + struct vlan_ioctl_args vifr; + + sk = socket(AF_INET, SOCK_STREAM, 0); + if (sk < 0) + return -errno; + + memset(&ifr, 0, sizeof(ifr)); + strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name)); + + /* check if it is a vlan and get physical interface name*/ + vifr.cmd = GET_VLAN_REALDEV_NAME_CMD; + strncpy(vifr.device1, ifname, sizeof(vifr.device1)); + + if(ioctl(sk, SIOCSIFVLAN, &vifr) >= 0) + strncpy(ifr.ifr_name, vifr.u.device2, sizeof(ifr.ifr_name)); + + /* get driver info */ + drvinfocmd.cmd = ETHTOOL_GDRVINFO; + ifr.ifr_data = (caddr_t)&drvinfocmd; + + if (!ioctl(sk, SIOCETHTOOL, &ifr)) { + if(!strcmp(drvinfocmd.driver, "dsa")) { + /* get dsa port*/ + cmd.cmd = ETHTOOL_GSET; + ifr.ifr_data = (caddr_t)&cmd; + + if (!ioctl(sk, SIOCETHTOOL, &ifr)) + dsaport = cmd.phy_address; + } + } + close(sk); + + return dsaport; +} + static int eth_network_probe(struct connman_network *network) { DBG("network %p", network); @@ -126,7 +169,7 @@ static void add_network(struct connman_device *device, struct ethernet_data *ethernet) { struct connman_network *network; - int index, vid; + int index; char *ifname; network = connman_network_create("carrier", @@ -139,7 +182,6 @@ static void add_network(struct connman_device *device, ifname = connman_inet_ifname(index); if (!ifname) return; - vid = get_vlan_vid(ifname); connman_network_set_name(network, "Wired"); @@ -149,14 +191,23 @@ static void add_network(struct connman_device *device, } if (!eth_tethering) { - char group[10] = "cable"; + char group[16] = "cable"; + int vid, dsaport; + + vid = get_vlan_vid(ifname); + dsaport = get_dsa_port(ifname); + /* * Prevent service from starting the reconnect * procedure as we do not want the DHCP client * to run when tethering. */ - if (vid >= 0) + if((vid >= 0) && (dsaport >= 0)) + snprintf(group, sizeof(group), "p%02x_%03x_cable", dsaport, vid); + else if (vid >= 0) snprintf(group, sizeof(group), "%03x_cable", vid); + else if (dsaport >= 0) + snprintf(group, sizeof(group), "p%02x_cable", dsaport); connman_network_set_group(network, group); } @@ -353,7 +404,7 @@ static void eth_tech_disable_tethering(struct connman_technology *technology, static int eth_tech_set_tethering(struct connman_technology *technology, const char *identifier, const char *passphrase, - const char *bridge, bool enabled, bool hidden) + const char *bridge, bool enabled) { if (!connman_technology_is_tethering_allowed( CONNMAN_SERVICE_TYPE_ETHERNET)) diff --git a/plugins/gadget.c b/plugins/gadget.c index 6bc37a7b..cce51e26 100755 --- a/plugins/gadget.c +++ b/plugins/gadget.c @@ -364,7 +364,7 @@ static void gadget_tech_disable_tethering(struct connman_technology *technology, static int gadget_tech_set_tethering(struct connman_technology *technology, const char *identifier, const char *passphrase, - const char *bridge, bool enabled, bool hidden) + const char *bridge, bool enabled) { DBG("bridge %s enabled %d", bridge, enabled); diff --git a/plugins/iwd.c b/plugins/iwd.c new file mode 100644 index 00000000..b5191654 --- /dev/null +++ b/plugins/iwd.c @@ -0,0 +1,1108 @@ +/* + * + * Connection Manager + * + * Copyright (C) 2016 BMW Car IT GmbH. + * + * 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 <errno.h> +#include <string.h> +#include <stdbool.h> +#include <linux/if_ether.h> + +#define CONNMAN_API_SUBJECT_TO_CHANGE +#include <connman/plugin.h> +#include <connman/dbus.h> +#include <connman/network.h> +#include <connman/technology.h> +#include <connman/inet.h> +#include <gdbus.h> + +static DBusConnection *connection; +static GDBusClient *client; +static GDBusProxy *agent_proxy; +static GHashTable *adapters; +static GHashTable *devices; +static GHashTable *networks; +static bool agent_registered; + +#define IWD_SERVICE "net.connman.iwd" +#define IWD_PATH "/" +#define IWD_AGENT_MANAGER_INTERFACE "net.connman.iwd.AgentManager" +#define IWD_ADAPTER_INTERFACE "net.connman.iwd.Adapter" +#define IWD_DEVICE_INTERFACE "net.connman.iwd.Device" +#define IWD_NETWORK_INTERFACE "net.connman.iwd.Network" + +#define IWD_AGENT_INTERFACE "net.connman.iwd.Agent" +#define IWD_AGENT_ERROR_INTERFACE "net.connman.iwd.Agent.Error" +#define AGENT_PATH "/net/connman/iwd_agent" + +enum iwd_device_state { + IWD_DEVICE_STATE_UNKNOWN, + IWD_DEVICE_STATE_CONNECTED, + IWD_DEVICE_STATE_DISCONNECTED, + IWD_DEVICE_STATE_CONNECTING, + IWD_DEVICE_STATE_DISCONNECTING, +}; + +struct iwd_adapter { + GDBusProxy *proxy; + char *path; + char *vendor; + char *model; + bool powered; +}; + +struct iwd_device { + GDBusProxy *proxy; + char *path; + char *adapter; + char *name; + char *address; + enum iwd_device_state state; + bool powered; + bool scanning; + + struct connman_device *device; +}; + +struct iwd_network { + GDBusProxy *proxy; + char *path; + char *device; + char *name; + char *type; + bool connected; + + struct iwd_device *iwdd; + struct connman_network *network; +}; + +static enum iwd_device_state string2state(const char *str) +{ + if (!strcmp(str, "connected")) + return IWD_DEVICE_STATE_CONNECTED; + else if (!strcmp(str, "disconnected")) + return IWD_DEVICE_STATE_DISCONNECTED; + else if (!strcmp(str, "connecting")) + return IWD_DEVICE_STATE_CONNECTING; + else if (!strcmp(str, "disconnecting")) + return IWD_DEVICE_STATE_DISCONNECTING; + + return IWD_DEVICE_STATE_UNKNOWN; +} + +static const char *state2string(enum iwd_device_state state) +{ + switch (state) { + case IWD_DEVICE_STATE_CONNECTED: + return "connected"; + case IWD_DEVICE_STATE_DISCONNECTED: + return "disconnected"; + case IWD_DEVICE_STATE_CONNECTING: + return "connecting"; + case IWD_DEVICE_STATE_DISCONNECTING: + return "disconnecting"; + default: + break; + } + + return "unknown"; +} + +static const char *proxy_get_string(GDBusProxy *proxy, const char *property) +{ + DBusMessageIter iter; + const char *str; + + if (!g_dbus_proxy_get_property(proxy, property, &iter)) + return NULL; + + dbus_message_iter_get_basic(&iter, &str); + + return str; +} + +static bool proxy_get_bool(GDBusProxy *proxy, const char *property) +{ + DBusMessageIter iter; + dbus_bool_t value; + + if (!g_dbus_proxy_get_property(proxy, property, &iter)) + return false; + + dbus_message_iter_get_basic(&iter, &value); + + return value; +} + +static void address2ident(const char *address, char *ident) +{ + int i; + + for (i = 0; i < ETH_ALEN; i++) { + ident[i * 2] = address[i * 3]; + ident[i * 2 + 1] = address[i * 3 + 1]; + } + ident[ETH_ALEN * 2] = '\0'; +} + +static int cm_network_probe(struct connman_network *network) +{ + GHashTableIter iter; + gpointer key, value; + + g_hash_table_iter_init(&iter, networks); + + while (g_hash_table_iter_next(&iter, &key, &value)) { + struct iwd_network *iwdn = value; + + if (network == iwdn->network) + return 0; + } + + return -EOPNOTSUPP; +} + +static void update_network_connected(struct iwd_network *iwdn) +{ + struct iwd_device *iwdd; + int index; + + iwdd = g_hash_table_lookup(devices, iwdn->device); + if (!iwdd) + return; + + index = connman_inet_ifindex(iwdd->name); + if (index < 0) + return; + + DBG("interface name %s index %d", iwdd->name, index); + connman_network_set_index(iwdn->network, index); + connman_network_set_connected(iwdn->network, true); +} + +static void update_network_disconnected(struct iwd_network *iwdn) +{ + DBG("interface name %s", iwdn->name); + connman_network_set_connected(iwdn->network, false); +} + +static void cm_network_connect_cb(DBusMessage *message, void *user_data) +{ + const char *path = user_data; + struct iwd_network *iwdn; + + iwdn = g_hash_table_lookup(networks, path); + if (!iwdn) + return; + + if (dbus_message_get_type(message) == DBUS_MESSAGE_TYPE_ERROR) { + const char *dbus_error = dbus_message_get_error_name(message); + + if (!strcmp(dbus_error, "net.connman.iwd.InProgress")) + return; + + DBG("%s connect failed: %s", path, dbus_error); + connman_network_set_error(iwdn->network, + CONNMAN_NETWORK_ERROR_CONNECT_FAIL); + return; + } + + update_network_connected(iwdn); +} + +static int cm_network_connect(struct connman_network *network) +{ + struct iwd_network *iwdn = connman_network_get_data(network); + + if (!iwdn) + return -EINVAL; + + if (!g_dbus_proxy_method_call(iwdn->proxy, "Connect", + NULL, cm_network_connect_cb, + g_strdup(iwdn->path), g_free)) + return -EIO; + + connman_network_set_associating(iwdn->network, true); + + return -EINPROGRESS; +} + +static void cm_network_disconnect_cb(DBusMessage *message, void *user_data) +{ + const char *path = user_data; + struct iwd_network *iwdn; + + iwdn = g_hash_table_lookup(networks, path); + if (!iwdn) + return; + + if (dbus_message_get_type(message) == DBUS_MESSAGE_TYPE_ERROR) { + const char *dbus_error = dbus_message_get_error_name(message); + + if (!strcmp(dbus_error, "net.connman.iwd.NotConnected")) { + /* fall through */ + } else { + DBG("%s disconnect failed: %s", path, dbus_error); + return; + } + } + + /* + * We end up in a tight loop in the error case. That is + * when we can't connect, bail out in cm_network_connect_cb() with + * an error. + */ + if (connman_network_get_connected(iwdn->network)) + update_network_disconnected(iwdn); +} + +static int cm_network_disconnect(struct connman_network *network) +{ + struct iwd_network *iwdn = connman_network_get_data(network); + struct iwd_device *iwdd; + + if (!iwdn) + return -EINVAL; + + iwdd = g_hash_table_lookup(devices, iwdn->device); + if (!iwdd) + return -EIO; + + if (!g_dbus_proxy_method_call(iwdd->proxy, "Disconnect", + NULL, cm_network_disconnect_cb, g_strdup(iwdn->path), g_free)) + return -EIO; + + return -EINPROGRESS; +} + +static struct connman_network_driver network_driver = { + .name = "iwd", + .type = CONNMAN_NETWORK_TYPE_WIFI, + .probe = cm_network_probe, + .connect = cm_network_connect, + .disconnect = cm_network_disconnect, +}; + +static int cm_device_probe(struct connman_device *device) +{ + GHashTableIter iter; + gpointer key, value; + + g_hash_table_iter_init(&iter, devices); + + while (g_hash_table_iter_next(&iter, &key, &value)) { + struct iwd_device *iwdd = value; + + if (device == iwdd->device) + return 0; + } + + return -EOPNOTSUPP; +} + +static void cm_device_remove(struct connman_device *device) +{ +} + +struct dev_cb_data { + char *path; + bool powered; +}; + +static void device_powered_cb(const DBusError *error, void *user_data) +{ + struct dev_cb_data *cbd = user_data; + struct iwd_device *iwdd; + + iwdd = g_hash_table_lookup(devices, cbd->path); + if (!iwdd) + goto out; + + if (dbus_error_is_set(error)) { + connman_warn("WiFi device %s not enabled %s", + cbd->path, error->message); + goto out; + } + + connman_device_set_powered(iwdd->device, cbd->powered); +out: + g_free(cbd->path); + g_free(cbd); +} + +static int set_device_powered(struct connman_device *device, bool powered) +{ + struct iwd_device *iwdd = connman_device_get_data(device); + dbus_bool_t device_powered = powered; + struct dev_cb_data *cbd; + + if (proxy_get_bool(iwdd->proxy, "Powered")) + return -EALREADY; + + cbd = g_new(struct dev_cb_data, 1); + cbd->path = g_strdup(iwdd->path); + cbd->powered = powered; + + g_dbus_proxy_set_property_basic(iwdd->proxy, "Powered", + DBUS_TYPE_BOOLEAN, &device_powered, + device_powered_cb, cbd, NULL); + + return -EINPROGRESS; +} + +static int cm_device_enable(struct connman_device *device) +{ + return set_device_powered(device, true); +} + +static int cm_device_disable(struct connman_device *device) +{ + return set_device_powered(device, false); +} + +static struct connman_device_driver device_driver = { + .name = "iwd", + .type = CONNMAN_DEVICE_TYPE_WIFI, + .probe = cm_device_probe, + .remove = cm_device_remove, + .enable = cm_device_enable, + .disable = cm_device_disable, +}; + +static int cm_tech_probe(struct connman_technology *technology) +{ + return 0; +} + +static void cm_tech_remove(struct connman_technology *technology) +{ +} + +static struct connman_technology_driver tech_driver = { + .name = "iwd", + .type = CONNMAN_SERVICE_TYPE_WIFI, + .probe = cm_tech_probe, + .remove = cm_tech_remove, +}; + +static unsigned char calculate_strength(int strength) +{ + unsigned char res; + + /* + * Network's maximum signal strength expressed in 100 * dBm. + * The value is the range of 0 (strongest signal) to -10000 + * (weakest signal) + * + * ConnMan expects it in the range from 100 (strongest) to 0 + * (weakest). + */ + res = (unsigned char)((strength * -10000) / 100); + + return res; +} + +static void _update_signal_strength(const char *path, int16_t signal_strength) +{ + struct iwd_network *iwdn; + + iwdn = g_hash_table_lookup(networks, path); + if (!iwdn) + return; + + if (!iwdn->network) + return; + + connman_network_set_strength(iwdn->network, + calculate_strength(signal_strength)); +} + +static void ordered_networks_cb(DBusMessage *message, void *user_data) +{ + DBusMessageIter array, entry; + + DBG(""); + + if (!dbus_message_iter_init(message, &array)) + return; + + if (dbus_message_iter_get_arg_type(&array) != DBUS_TYPE_ARRAY) + return; + + dbus_message_iter_recurse(&array, &entry); + while (dbus_message_iter_get_arg_type(&entry) == DBUS_TYPE_STRUCT) { + DBusMessageIter value; + const char *path, *name, *type; + int16_t signal_strength; + + + dbus_message_iter_recurse(&entry, &value); + + dbus_message_iter_get_basic(&value, &path); + + dbus_message_iter_next(&value); + dbus_message_iter_get_basic(&value, &name); + + dbus_message_iter_next(&value); + dbus_message_iter_get_basic(&value, &signal_strength); + + dbus_message_iter_next(&value); + dbus_message_iter_get_basic(&value, &type); + + _update_signal_strength(path, signal_strength); + + dbus_message_iter_next(&entry); + } +} + +static void update_signal_strength(struct iwd_device *iwdd) +{ + if (!g_dbus_proxy_method_call(iwdd->proxy, + "GetOrderedNetworks", + NULL, ordered_networks_cb, + NULL, NULL)) + DBG("GetOrderedNetworks() failed"); +} + +static void add_network(const char *path, struct iwd_network *iwdn) +{ + struct iwd_device *iwdd; + const char *identifier; + + iwdd = g_hash_table_lookup(devices, iwdn->device); + if (!iwdd) + return; + + identifier = strrchr(path, '/'); + identifier++; /* strip leading slash as well */ + iwdn->network = connman_network_create(identifier, + CONNMAN_NETWORK_TYPE_WIFI); + connman_network_set_data(iwdn->network, iwdn); + + connman_network_set_name(iwdn->network, iwdn->name); + connman_network_set_blob(iwdn->network, "WiFi.SSID", iwdn->name, + strlen(iwdn->name)); + connman_network_set_string(iwdn->network, "WiFi.Security", + iwdn->type); + + if (connman_device_add_network(iwdd->device, iwdn->network) < 0) { + connman_network_unref(iwdn->network); + iwdn->network = NULL; + return; + } + iwdn->iwdd = iwdd; + + connman_network_set_available(iwdn->network, true); + connman_network_set_group(iwdn->network, identifier); +} + +static void remove_network(struct iwd_network *iwdn) +{ + if (!iwdn->network) + return; + + if (iwdn->iwdd) + connman_device_remove_network(iwdn->iwdd->device, + iwdn->network); + + connman_network_unref(iwdn->network); + iwdn->network = NULL; +} + +static void add_device(const char *path, struct iwd_device *iwdd) +{ + char ident[ETH_ALEN * 2 + 1]; + + iwdd->device = connman_device_create("wifi", CONNMAN_DEVICE_TYPE_WIFI); + if (!iwdd->device) + return; + + connman_device_set_data(iwdd->device, iwdd); + + address2ident(iwdd->address, ident); + connman_device_set_ident(iwdd->device, ident); + + if (connman_device_register(iwdd->device) < 0) { + g_hash_table_remove(devices, path); + return; + } + + connman_device_set_powered(iwdd->device, iwdd->powered); +} + +static void remove_device_networks(struct iwd_device *iwdd) +{ + GHashTableIter iter; + gpointer key, value; + struct iwd_network *iwdn; + GSList *list, *nets = NULL; + + g_hash_table_iter_init(&iter, networks); + + while (g_hash_table_iter_next(&iter, &key, &value)) { + iwdn = value; + + if (!strcmp(iwdd->path, iwdn->device)) + nets = g_slist_prepend(nets, iwdn); + } + + for (list = nets; list; list = list->next) { + iwdn = list->data; + g_hash_table_remove(networks, iwdn->path); + } + + g_slist_free(nets); +} + +static void remove_device(struct iwd_device *iwdd) +{ + if (!iwdd->device) + return; + + remove_device_networks(iwdd); + connman_device_unregister(iwdd->device); + connman_device_unref(iwdd->device); + iwdd->device = NULL; +} + +static void adapter_property_change(GDBusProxy *proxy, const char *name, + DBusMessageIter *iter, void *user_data) +{ + struct iwd_adapter *adapter; + const char *path; + + path = g_dbus_proxy_get_path(proxy); + adapter = g_hash_table_lookup(adapters, path); + if (!adapter) + return; + + if (!strcmp(name, "Powered")) { + dbus_bool_t powered; + + dbus_message_iter_get_basic(iter, &powered); + adapter->powered = powered; + + DBG("%p powered %d", path, adapter->powered); + } +} + +static void device_property_change(GDBusProxy *proxy, const char *name, + DBusMessageIter *iter, void *user_data) +{ + struct iwd_device *iwdd; + const char *path; + + path = g_dbus_proxy_get_path(proxy); + iwdd = g_hash_table_lookup(devices, path); + if (!iwdd) + return; + + if (!strcmp(name, "Name")) { + const char *name; + + dbus_message_iter_get_basic(iter, &name); + g_free(iwdd->name); + iwdd->name = g_strdup(name); + + DBG("%p name %s", path, iwdd->name); + } else if (!strcmp(name, "State")) { + const char *state; + + dbus_message_iter_get_basic(iter, &state); + iwdd->state = string2state(state); + + DBG("%s state %s", path, state2string(iwdd->state)); + } else if (!strcmp(name, "Powered")) { + dbus_bool_t powered; + + dbus_message_iter_get_basic(iter, &powered); + iwdd->powered = powered; + + DBG("%s powered %d", path, iwdd->powered); + } else if (!strcmp(name, "Scanning")) { + dbus_bool_t scanning; + + dbus_message_iter_get_basic(iter, &scanning); + iwdd->scanning = scanning; + + DBG("%s scanning %d", path, iwdd->scanning); + + if (!iwdd->scanning) + update_signal_strength(iwdd); + + } +} + +static void network_property_change(GDBusProxy *proxy, const char *name, + DBusMessageIter *iter, void *user_data) +{ + struct iwd_network *iwdn; + const char *path; + + path = g_dbus_proxy_get_path(proxy); + iwdn = g_hash_table_lookup(networks, path); + if (!iwdn) + return; + + if (!strcmp(name, "Connected")) { + dbus_bool_t connected; + + dbus_message_iter_get_basic(iter, &connected); + iwdn->connected = connected; + + DBG("%s connected %d", path, iwdn->connected); + + if (iwdn->connected) + update_network_connected(iwdn); + else + update_network_disconnected(iwdn); + } +} + +static void adapter_free(gpointer data) +{ + struct iwd_adapter *iwda = data; + + if (iwda->proxy) { + g_dbus_proxy_unref(iwda->proxy); + iwda->proxy = NULL; + } + + g_free(iwda->path); + g_free(iwda->vendor); + g_free(iwda->model); + g_free(iwda); +} + +static void device_free(gpointer data) +{ + struct iwd_device *iwdd = data; + + if (iwdd->proxy) { + g_dbus_proxy_unref(iwdd->proxy); + iwdd->proxy = NULL; + } + + remove_device(iwdd); + + g_free(iwdd->path); + g_free(iwdd->adapter); + g_free(iwdd->name); + g_free(iwdd->address); + g_free(iwdd); +} + +static void network_free(gpointer data) +{ + struct iwd_network *iwdn = data; + + if (iwdn->proxy) { + g_dbus_proxy_unref(iwdn->proxy); + iwdn->proxy = NULL; + } + + remove_network(iwdn); + + g_free(iwdn->path); + g_free(iwdn->device); + g_free(iwdn->name); + g_free(iwdn->type); + g_free(iwdn); +} + +static void create_adapter(GDBusProxy *proxy) +{ + const char *path = g_dbus_proxy_get_path(proxy); + struct iwd_adapter *iwda; + + iwda = g_try_new0(struct iwd_adapter, 1); + + if (!iwda) { + connman_error("Out of memory creating IWD adapter"); + return; + } + + iwda->path = g_strdup(path); + g_hash_table_replace(adapters, iwda->path, iwda); + + iwda->proxy = g_dbus_proxy_ref(proxy); + + if (!iwda->proxy) { + connman_error("Cannot create IWD adapter watcher %s", path); + g_hash_table_remove(adapters, path); + return; + } + + iwda->vendor = g_strdup(proxy_get_string(proxy, "Vendor")); + iwda->model = g_strdup(proxy_get_string(proxy, "Model")); + iwda->powered = proxy_get_bool(proxy, "Powered"); + + DBG("%s vendor '%s' model '%s' powered %d", path, iwda->vendor, + iwda->model, iwda->powered); + + g_dbus_proxy_set_property_watch(iwda->proxy, + adapter_property_change, NULL); +} + +static void create_device(GDBusProxy *proxy) +{ + const char *path = g_dbus_proxy_get_path(proxy); + struct iwd_device *iwdd; + + iwdd = g_try_new0(struct iwd_device, 1); + + if (!iwdd) { + connman_error("Out of memory creating IWD device"); + return; + } + + iwdd->path = g_strdup(path); + g_hash_table_replace(devices, iwdd->path, iwdd); + + iwdd->proxy = g_dbus_proxy_ref(proxy); + + if (!iwdd->proxy) { + connman_error("Cannot create IWD device watcher %s", path); + g_hash_table_remove(devices, path); + return; + } + + iwdd->adapter = g_strdup(proxy_get_string(proxy, "Adapter")); + iwdd->name = g_strdup(proxy_get_string(proxy, "Name")); + iwdd->address = g_strdup(proxy_get_string(proxy, "Address")); + iwdd->state = string2state(proxy_get_string(proxy, "State")); + iwdd->powered = proxy_get_bool(proxy, "Powered"); + iwdd->scanning = proxy_get_bool(proxy, "Scanning"); + + DBG("adapter %s name %s address %s state %s powered %d scanning %d", + iwdd->adapter, iwdd->name, iwdd->address, + state2string(iwdd->state), + iwdd->powered, iwdd->scanning); + + g_dbus_proxy_set_property_watch(iwdd->proxy, + device_property_change, NULL); + + add_device(path, iwdd); +} + +static void unregister_agent(); + +static DBusMessage *agent_release_method(DBusConnection *dbus_conn, + DBusMessage *message, void *user_data) +{ + unregister_agent(); + return g_dbus_create_reply(message, DBUS_TYPE_INVALID); +} + +static DBusMessage *get_reply_on_error(DBusMessage *message, int error) +{ + return g_dbus_create_error(message, + IWD_AGENT_ERROR_INTERFACE ".Failed", "Invalid parameters"); +} + +static DBusMessage *agent_request_passphrase(DBusConnection *dbus_conn, + DBusMessage *message, + void *user_data) +{ + struct iwd_network *iwdn; + DBusMessageIter iter; + const char *path, *passwd; + + DBG(""); + + dbus_message_iter_init(message, &iter); + + if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_OBJECT_PATH) + return get_reply_on_error(message, EINVAL); + + dbus_message_iter_get_basic(&iter, &path); + + iwdn = g_hash_table_lookup(networks, path); + if (!iwdn) + return get_reply_on_error(message, EINVAL); + + passwd = connman_network_get_string(iwdn->network, "WiFi.Passphrase"); + + return g_dbus_create_reply(message, DBUS_TYPE_STRING, &passwd, + DBUS_TYPE_INVALID); +} + +static DBusMessage *agent_cancel(DBusConnection *dbus_conn, + DBusMessage *message, void *user_data) +{ + DBusMessageIter iter; + const char *reason; + + dbus_message_iter_init(message, &iter); + + if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_STRING) + return get_reply_on_error(message, EINVAL); + + dbus_message_iter_get_basic(&iter, &reason); + + DBG("cancel: %s", reason); + + /* + * We don't have to do anything here, because we asked the + * user upfront for the passphrase. So + * agent_request_passphrase() will always send a passphrase + * immediately. + */ + + return g_dbus_create_reply(message, DBUS_TYPE_INVALID); +} + +static const GDBusMethodTable agent_methods[] = { + { GDBUS_METHOD("Release", NULL, NULL, agent_release_method) }, + { GDBUS_METHOD("RequestPassphrase", + GDBUS_ARGS({ "path", "o" }), + GDBUS_ARGS({ "passphrase", "s" }), + agent_request_passphrase)}, + { GDBUS_METHOD("Cancel", + GDBUS_ARGS({ "reason", "s" }), + NULL, agent_cancel) }, + { }, +}; + +static void agent_register_builder(DBusMessageIter *iter, void *user_data) +{ + const char *path = AGENT_PATH; + + dbus_message_iter_append_basic(iter, DBUS_TYPE_OBJECT_PATH, + &path); +} + +static void register_agent(GDBusProxy *proxy) +{ + if (!g_dbus_proxy_method_call(proxy, + "RegisterAgent", + agent_register_builder, + NULL, NULL, NULL)) + return; + + agent_proxy = g_dbus_proxy_ref(proxy); +} + +static void unregister_agent() +{ + if (!agent_proxy) + return; + + g_dbus_proxy_method_call(agent_proxy, + "UnregisterAgent", + agent_register_builder, + NULL, NULL, NULL); + + g_dbus_proxy_unref(agent_proxy); + agent_proxy = NULL; +} + +static void iwd_is_present(DBusConnection *conn, void *user_data) +{ + if (agent_registered) + return; + + if (!g_dbus_register_interface(connection, AGENT_PATH, + IWD_AGENT_INTERFACE, agent_methods, + NULL, NULL, NULL, NULL)) + return; + + agent_registered = true; +} + +static void iwd_is_out(DBusConnection *conn, void *user_data) +{ + if (agent_registered) { + g_dbus_unregister_interface(connection, + AGENT_PATH, IWD_AGENT_INTERFACE); + agent_registered = false; + } +} + +static void create_network(GDBusProxy *proxy) +{ + const char *path = g_dbus_proxy_get_path(proxy); + struct iwd_network *iwdn; + + iwdn = g_try_new0(struct iwd_network, 1); + + if (!iwdn) { + connman_error("Out of memory creating IWD network"); + return; + } + + iwdn->path = g_strdup(path); + g_hash_table_replace(networks, iwdn->path, iwdn); + + iwdn->proxy = g_dbus_proxy_ref(proxy); + + if (!iwdn->proxy) { + connman_error("Cannot create IWD network watcher %s", path); + g_hash_table_remove(networks, path); + return; + } + + iwdn->device = g_strdup(proxy_get_string(proxy, "Device")); + iwdn->name = g_strdup(proxy_get_string(proxy, "Name")); + iwdn->type = g_strdup(proxy_get_string(proxy, "Type")); + iwdn->connected = proxy_get_bool(proxy, "Connected"); + + DBG("device %s name '%s' type %s connected %d", + iwdn->device, + iwdn->name, + iwdn->type, + iwdn->connected); + + g_dbus_proxy_set_property_watch(iwdn->proxy, + network_property_change, NULL); + + add_network(path, iwdn); +} + +static void object_added(GDBusProxy *proxy, void *user_data) +{ + const char *interface; + + interface = g_dbus_proxy_get_interface(proxy); + if (!interface) { + connman_warn("Interface or proxy missing when adding " + "iwd object"); + return; + } + + DBG("%s %s", interface, g_dbus_proxy_get_path(proxy)); + + if (!strcmp(interface, IWD_AGENT_MANAGER_INTERFACE)) + register_agent(proxy); + else if (!strcmp(interface, IWD_ADAPTER_INTERFACE)) + create_adapter(proxy); + else if (!strcmp(interface, IWD_DEVICE_INTERFACE)) + create_device(proxy); + else if (!strcmp(interface, IWD_NETWORK_INTERFACE)) + create_network(proxy); +} + +static void object_removed(GDBusProxy *proxy, void *user_data) +{ + const char *interface, *path; + + interface = g_dbus_proxy_get_interface(proxy); + if (!interface) { + connman_warn("Interface or proxy missing when removing " + "iwd object"); + return; + } + + path = g_dbus_proxy_get_path(proxy); + DBG("%s %s", interface, path); + + if (!strcmp(interface, IWD_AGENT_MANAGER_INTERFACE)) + unregister_agent(); + if (!strcmp(interface, IWD_ADAPTER_INTERFACE)) + g_hash_table_remove(adapters, path); + else if (!strcmp(interface, IWD_DEVICE_INTERFACE)) + g_hash_table_remove(devices, path); + else if (!strcmp(interface, IWD_NETWORK_INTERFACE)) + g_hash_table_remove(networks, path); +} + +static int iwd_init(void) +{ + connection = connman_dbus_get_connection(); + if (!connection) + goto out; + + adapters = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, + adapter_free); + + devices = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, + device_free); + + networks = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, + network_free); + + if (connman_technology_driver_register(&tech_driver) < 0) { + connman_warn("Failed to initialize technology for IWD"); + goto out; + } + + if (connman_device_driver_register(&device_driver) < 0) { + connman_warn("Failed to initialize device driver for " + IWD_SERVICE); + connman_technology_driver_unregister(&tech_driver); + goto out; + } + + if (connman_network_driver_register(&network_driver) < 0) { + connman_technology_driver_unregister(&tech_driver); + connman_device_driver_unregister(&device_driver); + goto out; + } + + client = g_dbus_client_new(connection, IWD_SERVICE, IWD_PATH); + if (!client) { + connman_warn("Failed to initialize D-Bus client for " + IWD_SERVICE); + goto out; + } + + g_dbus_client_set_connect_watch(client, iwd_is_present, NULL); + g_dbus_client_set_disconnect_watch(client, iwd_is_out, NULL); + g_dbus_client_set_proxy_handlers(client, object_added, object_removed, + NULL, NULL); + + return 0; + +out: + if (devices) + g_hash_table_destroy(devices); + + if (networks) + g_hash_table_destroy(networks); + + if (adapters) + g_hash_table_destroy(adapters); + + if (connection) + dbus_connection_unref(connection); + + return -EIO; +} + +static void iwd_exit(void) +{ + connman_network_driver_unregister(&network_driver); + connman_device_driver_unregister(&device_driver); + connman_technology_driver_unregister(&tech_driver); + + g_dbus_client_unref(client); + + g_hash_table_destroy(networks); + g_hash_table_destroy(devices); + g_hash_table_destroy(adapters); + + dbus_connection_unref(connection); +} + +CONNMAN_PLUGIN_DEFINE(iwd, "IWD plugin", VERSION, + CONNMAN_PLUGIN_PRIORITY_DEFAULT, iwd_init, iwd_exit) diff --git a/plugins/neard.c b/plugins/neard.c index 1a0fc1cd..69586df6 100755 --- a/plugins/neard.c +++ b/plugins/neard.c @@ -534,10 +534,8 @@ static void register_agent(void) &path, DBUS_TYPE_STRING, &type, DBUS_TYPE_INVALID); if (!dbus_connection_send_with_reply(connection, message, - ®ister_call, TIMEOUT)) { - dbus_message_unref(message); + ®ister_call, TIMEOUT)) goto out; - } if (!dbus_pending_call_set_notify(register_call, register_agent_cb, NULL, NULL)) diff --git a/plugins/ofono.c b/plugins/ofono.c index 5cd83029..78f8f196 100755 --- a/plugins/ofono.c +++ b/plugins/ofono.c @@ -133,6 +133,7 @@ static GHashTable *context_hash; struct network_context { char *path; int index; + struct connman_network *network; enum connman_ipconfig_method ipv4_method; struct connman_ipaddress *ipv4_address; @@ -141,15 +142,19 @@ struct network_context { enum connman_ipconfig_method ipv6_method; struct connman_ipaddress *ipv6_address; char *ipv6_nameservers; + + int refcount; + + bool active; + bool valid_apn; /* APN is 'valid' if length > 0 */ }; struct modem_data { char *path; struct connman_device *device; - struct connman_network *network; - struct network_context *context; + GSList *context_list; /* Modem Interface */ char *serial; @@ -167,10 +172,6 @@ struct modem_data { bool attached; bool cm_powered; - /* ConnectionContext Interface */ - bool active; - bool valid_apn; /* APN is 'valid' if length > 0 */ - /* SimManager Interface */ char *imsi; @@ -219,6 +220,40 @@ static char *get_ident(const char *path) return pos + 1; } +static struct network_context *get_context_with_path(GSList *context_list, + const gchar *path) +{ + GSList *list; + + DBG("path %s", path); + + for (list = context_list; list; list = list->next) { + struct network_context *context = list->data; + + if (g_strcmp0(context->path, path) == 0) + return context; + } + + return NULL; +} + +static struct network_context *get_context_with_network(GSList *context_list, + const struct connman_network *network) +{ + GSList *list; + + DBG("network %p", network); + + for (list = context_list; list; list = list->next) { + struct network_context *context = list->data; + + if (context->network == network) + return context; + } + + return NULL; +} + static struct network_context *network_context_alloc(const char *path) { struct network_context *context; @@ -238,11 +273,25 @@ static struct network_context *network_context_alloc(const char *path) context->ipv6_address = NULL; context->ipv6_nameservers = NULL; + context->refcount = 1; + return context; } -static void network_context_free(struct network_context *context) +static void network_context_ref(struct network_context *context) +{ + DBG("%p ref %d", context, context->refcount + 1); + + __sync_fetch_and_add(&context->refcount, 1); +} + +static void network_context_unref(struct network_context *context) { + DBG("%p ref %d", context, context->refcount - 1); + + if (__sync_fetch_and_sub(&context->refcount, 1) != 1) + return; + g_free(context->path); connman_ipaddress_free(context->ipv4_address); @@ -251,10 +300,11 @@ static void network_context_free(struct network_context *context) connman_ipaddress_free(context->ipv6_address); g_free(context->ipv6_nameservers); - free(context); + g_free(context); } -static void set_connected(struct modem_data *modem) +static void set_connected(struct modem_data *modem, + struct network_context *context) { struct connman_service *service; bool setip = false; @@ -264,21 +314,21 @@ static void set_connected(struct modem_data *modem) DBG("%s", modem->path); - index = modem->context->index; + index = context->index; - method = modem->context->ipv4_method; - if (index < 0 || (!modem->context->ipv4_address && + method = context->ipv4_method; + if (index < 0 || (!context->ipv4_address && method == CONNMAN_IPCONFIG_METHOD_FIXED)) { connman_error("Invalid index and/or address"); return; } - service = connman_service_lookup_from_network(modem->network); + service = connman_service_lookup_from_network(context->network); if (!service) return; connman_service_create_ip4config(service, index); - connman_network_set_ipv4_method(modem->network, method); + connman_network_set_ipv4_method(context->network, method); if (method == CONNMAN_IPCONFIG_METHOD_FIXED || method == CONNMAN_IPCONFIG_METHOD_DHCP) { @@ -286,69 +336,68 @@ static void set_connected(struct modem_data *modem) } if (method == CONNMAN_IPCONFIG_METHOD_FIXED) { - connman_network_set_ipaddress(modem->network, - modem->context->ipv4_address); + connman_network_set_ipaddress(context->network, + context->ipv4_address); } - method = modem->context->ipv6_method; + method = context->ipv6_method; connman_service_create_ip6config(service, index); - connman_network_set_ipv6_method(modem->network, method); + connman_network_set_ipv6_method(context->network, method); if (method == CONNMAN_IPCONFIG_METHOD_AUTO) { setip = true; } /* Set the nameservers */ - if (modem->context->ipv4_nameservers && - modem->context->ipv6_nameservers) { + if (context->ipv4_nameservers && + context->ipv6_nameservers) { nameservers = g_strdup_printf("%s %s", - modem->context->ipv4_nameservers, - modem->context->ipv6_nameservers); - connman_network_set_nameservers(modem->network, nameservers); + context->ipv4_nameservers, + context->ipv6_nameservers); + connman_network_set_nameservers(context->network, nameservers); g_free(nameservers); - } else if (modem->context->ipv4_nameservers) { - connman_network_set_nameservers(modem->network, - modem->context->ipv4_nameservers); - } else if (modem->context->ipv6_nameservers) { - connman_network_set_nameservers(modem->network, - modem->context->ipv6_nameservers); + } else if (context->ipv4_nameservers) { + connman_network_set_nameservers(context->network, + context->ipv4_nameservers); + } else if (context->ipv6_nameservers) { + connman_network_set_nameservers(context->network, + context->ipv6_nameservers); } if (setip) { - connman_network_set_index(modem->network, index); - connman_network_set_connected(modem->network, true); + connman_network_set_index(context->network, index); + connman_network_set_connected(context->network, true); } } -static void set_disconnected(struct modem_data *modem) +static void set_disconnected(struct network_context *context) { - DBG("%s", modem->path); + DBG("%s", context->path); - if (modem->network) - connman_network_set_connected(modem->network, false); + if (context->network) + connman_network_set_connected(context->network, false); - if (modem->context) { - g_free(modem->context->ipv4_nameservers); - modem->context->ipv4_nameservers = NULL; - if (modem->context->ipv4_method != CONNMAN_IPCONFIG_METHOD_OFF) - modem->context->ipv4_method = - CONNMAN_IPCONFIG_METHOD_UNKNOWN; + g_free(context->ipv4_nameservers); + context->ipv4_nameservers = NULL; + if (context->ipv4_method != CONNMAN_IPCONFIG_METHOD_OFF) + context->ipv4_method = + CONNMAN_IPCONFIG_METHOD_UNKNOWN; - g_free(modem->context->ipv6_nameservers); - modem->context->ipv6_nameservers = NULL; - if (modem->context->ipv6_method != CONNMAN_IPCONFIG_METHOD_OFF) - modem->context->ipv6_method = - CONNMAN_IPCONFIG_METHOD_UNKNOWN; - } + g_free(context->ipv6_nameservers); + context->ipv6_nameservers = NULL; + if (context->ipv6_method != CONNMAN_IPCONFIG_METHOD_OFF) + context->ipv6_method = + CONNMAN_IPCONFIG_METHOD_UNKNOWN; } typedef void (*set_property_cb)(struct modem_data *data, - bool success); + struct network_context *context, bool success); typedef void (*get_properties_cb)(struct modem_data *data, DBusMessageIter *dict); struct property_info { struct modem_data *modem; + struct network_context *context; const char *path; const char *interface; const char *property; @@ -356,6 +405,16 @@ struct property_info { get_properties_cb get_properties_cb; }; +static void free_property_info(void * memory) +{ + struct property_info * info = memory; + + if (info->context) + network_context_unref(info->context); + + g_free(info); +} + static void set_property_reply(DBusPendingCall *call, void *user_data) { struct property_info *info = user_data; @@ -381,7 +440,8 @@ static void set_property_reply(DBusPendingCall *call, void *user_data) } if (info->set_property_cb) - (*info->set_property_cb)(info->modem, success); + (*info->set_property_cb)(info->modem, info->context, + success); dbus_message_unref(reply); @@ -389,6 +449,7 @@ static void set_property_reply(DBusPendingCall *call, void *user_data) } static int set_property(struct modem_data *modem, + struct network_context *context, const char *path, const char *interface, const char *property, int type, void *value, set_property_cb notify) @@ -401,8 +462,8 @@ static int set_property(struct modem_data *modem, if (modem->call_set_property) { DBG("Cancel pending SetProperty"); - dbus_pending_call_cancel(modem->call_set_property); + dbus_pending_call_unref(modem->call_set_property); modem->call_set_property = NULL; } @@ -435,13 +496,17 @@ static int set_property(struct modem_data *modem, } info->modem = modem; + info->context = context; info->path = path; info->interface = interface; info->property = property; info->set_property_cb = notify; + if (info->context) + network_context_ref(info->context); + dbus_pending_call_set_notify(modem->call_set_property, - set_property_reply, info, g_free); + set_property_reply, info, free_property_info); dbus_message_unref(message); @@ -542,9 +607,9 @@ static int get_properties(const char *path, const char *interface, } static void context_set_active_reply(struct modem_data *modem, - bool success) + struct network_context *context, bool success) { - DBG("%s", modem->path); + DBG("%s", context->path); if (success) { /* @@ -561,7 +626,7 @@ static void context_set_active_reply(struct modem_data *modem, * cycle the modem in such cases? */ - if (!modem->network) { + if (!context->network) { /* * In the case where we power down the device * we don't wait for the reply, therefore the network @@ -570,18 +635,19 @@ static void context_set_active_reply(struct modem_data *modem, return; } - connman_network_set_error(modem->network, + connman_network_set_error(context->network, CONNMAN_NETWORK_ERROR_ASSOCIATE_FAIL); } static int context_set_active(struct modem_data *modem, - dbus_bool_t active) + struct network_context *context, + dbus_bool_t active) { int err; DBG("%s active %d", modem->path, active); - err = set_property(modem, modem->context->path, + err = set_property(modem, context, context->path, OFONO_CONTEXT_INTERFACE, "Active", DBUS_TYPE_BOOLEAN, &active, @@ -594,9 +660,9 @@ static int context_set_active(struct modem_data *modem, } static void cdma_cm_set_powered_reply(struct modem_data *modem, - bool success) + struct network_context *context, bool success) { - DBG("%s", modem->path); + DBG("%s", context->path); if (success) { /* @@ -613,7 +679,7 @@ static void cdma_cm_set_powered_reply(struct modem_data *modem, * cycle the modem in such cases? */ - if (!modem->network) { + if (!context->network) { /* * In the case where we power down the device * we don't wait for the reply, therefore the network @@ -622,17 +688,24 @@ static void cdma_cm_set_powered_reply(struct modem_data *modem, return; } - connman_network_set_error(modem->network, + connman_network_set_error(context->network, CONNMAN_NETWORK_ERROR_ASSOCIATE_FAIL); } static int cdma_cm_set_powered(struct modem_data *modem, dbus_bool_t powered) { int err; + struct network_context *context = NULL; + + if (!modem->context_list) + return -1; DBG("%s powered %d", modem->path, powered); - err = set_property(modem, modem->path, OFONO_CDMA_CM_INTERFACE, + /* In case of CDMA, there is only one context */ + context = modem->context_list->data; + err = set_property(modem, context, modem->path, + OFONO_CDMA_CM_INTERFACE, "Powered", DBUS_TYPE_BOOLEAN, &powered, cdma_cm_set_powered_reply); @@ -647,7 +720,7 @@ static int modem_set_online(struct modem_data *modem, dbus_bool_t online) { DBG("%s online %d", modem->path, online); - return set_property(modem, modem->path, + return set_property(modem, NULL, modem->path, OFONO_MODEM_INTERFACE, "Online", DBUS_TYPE_BOOLEAN, &online, @@ -660,7 +733,7 @@ static int cm_set_powered(struct modem_data *modem, dbus_bool_t powered) DBG("%s powered %d", modem->path, powered); - err = set_property(modem, modem->path, + err = set_property(modem, NULL, modem->path, OFONO_CM_INTERFACE, "Powered", DBUS_TYPE_BOOLEAN, &powered, @@ -680,7 +753,7 @@ static int modem_set_powered(struct modem_data *modem, dbus_bool_t powered) modem->set_powered = powered; - err = set_property(modem, modem->path, + err = set_property(modem, NULL, modem->path, OFONO_MODEM_INTERFACE, "Powered", DBUS_TYPE_BOOLEAN, &powered, @@ -768,7 +841,6 @@ static void extract_ipv4_settings(DBusMessageIter *array, connman_ipaddress_free(context->ipv4_address); context->ipv4_address = NULL; - context->index = -1; if (dbus_message_iter_get_arg_type(array) != DBUS_TYPE_ARRAY) return; @@ -871,7 +943,6 @@ static void extract_ipv6_settings(DBusMessageIter *array, connman_ipaddress_free(context->ipv6_address); context->ipv6_address = NULL; - context->index = -1; if (dbus_message_iter_get_arg_type(array) != DBUS_TYPE_ARRAY) return; @@ -1017,71 +1088,68 @@ static void destroy_device(struct modem_data *modem) connman_device_set_powered(modem->device, false); - if (modem->network) { - connman_device_remove_network(modem->device, modem->network); - connman_network_unref(modem->network); - modem->network = NULL; - } - connman_device_unregister(modem->device); connman_device_unref(modem->device); modem->device = NULL; } -static void add_network(struct modem_data *modem) +static void add_network(struct modem_data *modem, + struct network_context *context) { const char *group; DBG("%s", modem->path); - if (modem->network) + if (context->network) return; - modem->network = connman_network_create(modem->context->path, - CONNMAN_NETWORK_TYPE_CELLULAR); - if (!modem->network) + context->network = connman_network_create(context->path, + CONNMAN_NETWORK_TYPE_CELLULAR); + if (!context->network) return; - DBG("network %p", modem->network); + DBG("network %p", context->network); - connman_network_set_data(modem->network, modem); + connman_network_set_data(context->network, modem); - connman_network_set_string(modem->network, "Path", - modem->context->path); + connman_network_set_string(context->network, "Path", + context->path); if (modem->name) - connman_network_set_name(modem->network, modem->name); + connman_network_set_name(context->network, modem->name); else - connman_network_set_name(modem->network, ""); + connman_network_set_name(context->network, ""); - connman_network_set_strength(modem->network, modem->strength); + connman_network_set_strength(context->network, modem->strength); - group = get_ident(modem->context->path); - connman_network_set_group(modem->network, group); + group = get_ident(context->path); + connman_network_set_group(context->network, group); - connman_network_set_bool(modem->network, "Roaming", - modem->roaming); + connman_network_set_bool(context->network, "Roaming", + modem->roaming); - if (connman_device_add_network(modem->device, modem->network) < 0) { - connman_network_unref(modem->network); - modem->network = NULL; + if (connman_device_add_network(modem->device, context->network) < 0) { + connman_network_unref(context->network); + context->network = NULL; return; } } -static void remove_network(struct modem_data *modem) +static void remove_network(struct modem_data *modem, + struct network_context *context) { DBG("%s", modem->path); - if (!modem->network) + if (!context || !context->network) return; - DBG("network %p", modem->network); + DBG("network %p", context->network); - connman_device_remove_network(modem->device, modem->network); - connman_network_unref(modem->network); - modem->network = NULL; + if (modem->device) + connman_device_remove_network(modem->device, context->network); + connman_network_unref(context->network); + context->network = NULL; } static int set_context_ipconfig(struct network_context *context, @@ -1134,14 +1202,6 @@ static int add_cm_context(struct modem_data *modem, const char *context_path, DBG("%s context path %s", modem->path, context_path); - if (modem->context) { - /* - * We have already assigned a context to this modem - * and we do only support one Internet context. - */ - return -EALREADY; - } - context = network_context_alloc(context_path); if (!context) return -ENOMEM; @@ -1178,9 +1238,9 @@ static int add_cm_context(struct modem_data *modem, const char *context_path, dbus_message_iter_get_basic(&value, &apn); if (apn && strlen(apn) > 0) - modem->valid_apn = true; + context->valid_apn = true; else - modem->valid_apn = false; + context->valid_apn = false; DBG("%s AccessPointName '%s'", modem->path, apn); } else if (g_str_equal(key, "Protocol") && @@ -1195,51 +1255,77 @@ static int add_cm_context(struct modem_data *modem, const char *context_path, } if (g_strcmp0(context_type, "internet") != 0) { - network_context_free(context); + network_context_unref(context); return -EINVAL; } if (ip_protocol) set_context_ipconfig(context, ip_protocol); - modem->context = context; - modem->active = active; + context->active = active; + modem->context_list = g_slist_prepend(modem->context_list, context); g_hash_table_replace(context_hash, g_strdup(context_path), modem); - if (modem->valid_apn && modem->attached && - has_interface(modem->interfaces, - OFONO_API_NETREG)) { - add_network(modem); - } + if (context->valid_apn && modem->attached && + has_interface(modem->interfaces, OFONO_API_NETREG)) + add_network(modem, context); return 0; } static void remove_cm_context(struct modem_data *modem, - const char *context_path) + struct network_context *context) { - if (!modem->context) + if (!modem->context_list) return; + if (!context) + return; + + g_hash_table_remove(context_hash, context->path); + + if (context->network) + remove_network(modem, context); + modem->context_list = g_slist_remove(modem->context_list, context); + + network_context_unref(context); + context = NULL; +} + +static void remove_all_contexts(struct modem_data *modem) +{ + GSList *list = NULL; - if (modem->network) - remove_network(modem); + DBG(""); + + if (modem->context_list == NULL) + return; + + for (list = modem->context_list; list; list = list->next) { + struct network_context *context = list->data; - g_hash_table_remove(context_hash, context_path); + remove_cm_context(modem, context); + } + g_slist_free(modem->context_list); + modem->context_list = NULL; +} - network_context_free(modem->context); - modem->context = NULL; +static void remove_all_networks(struct modem_data *modem) +{ + GSList *list; - modem->valid_apn = false; + for (list = modem->context_list; list; list = list->next) { + struct network_context *context = list->data; - if (modem->network) - remove_network(modem); + remove_network(modem, context); + } } static gboolean context_changed(DBusConnection *conn, DBusMessage *message, void *user_data) { + struct network_context *context = NULL; const char *context_path = dbus_message_get_path(message); struct modem_data *modem = NULL; DBusMessageIter iter, value; @@ -1251,6 +1337,10 @@ static gboolean context_changed(DBusConnection *conn, if (!modem) return TRUE; + context = get_context_with_path(modem->context_list, context_path); + if (!context) + return TRUE; + if (!dbus_message_iter_init(message, &iter)) return TRUE; @@ -1267,23 +1357,23 @@ static gboolean context_changed(DBusConnection *conn, if (g_str_equal(key, "Settings")) { DBG("%s Settings", modem->path); - extract_ipv4_settings(&value, modem->context); + extract_ipv4_settings(&value, context); } else if (g_str_equal(key, "IPv6.Settings")) { DBG("%s IPv6.Settings", modem->path); - extract_ipv6_settings(&value, modem->context); + extract_ipv6_settings(&value, context); } else if (g_str_equal(key, "Active")) { dbus_bool_t active; dbus_message_iter_get_basic(&value, &active); - modem->active = active; + context->active = active; - DBG("%s Active %d", modem->path, modem->active); + DBG("%s Active %d", modem->path, context->active); - if (modem->active) - set_connected(modem); + if (context->active) + set_connected(modem, context); else - set_disconnected(modem); + set_disconnected(context); } else if (g_str_equal(key, "AccessPointName")) { const char *apn; @@ -1292,9 +1382,9 @@ static gboolean context_changed(DBusConnection *conn, DBG("%s AccessPointName %s", modem->path, apn); if (apn && strlen(apn) > 0) { - modem->valid_apn = true; + context->valid_apn = true; - if (modem->network) + if (context->network) return TRUE; if (!modem->attached) @@ -1304,17 +1394,17 @@ static gboolean context_changed(DBusConnection *conn, OFONO_API_NETREG)) return TRUE; - add_network(modem); + add_network(modem, context); - if (modem->active) - set_connected(modem); + if (context->active) + set_connected(modem, context); } else { - modem->valid_apn = false; + context->valid_apn = false; - if (!modem->network) + if (!context->network) return TRUE; - remove_network(modem); + remove_network(modem, context); } } else if (g_str_equal(key, "Protocol") && @@ -1323,7 +1413,7 @@ static gboolean context_changed(DBusConnection *conn, dbus_message_iter_get_basic(&value, &ip_protocol); - set_context_ipconfig(modem->context, ip_protocol); + set_context_ipconfig(context, ip_protocol); } return TRUE; @@ -1367,7 +1457,7 @@ static void cm_get_contexts_reply(DBusPendingCall *call, void *user_data) dbus_message_iter_next(&entry); dbus_message_iter_recurse(&entry, &value); - if (add_cm_context(modem, context_path, &value) == 0) + if (add_cm_context(modem, context_path, &value)) break; dbus_message_iter_next(&dict); @@ -1422,7 +1512,7 @@ static gboolean cm_context_added(DBusConnection *conn, const char *path = dbus_message_get_path(message); char *context_path; struct modem_data *modem; - DBusMessageIter iter, properties; + DBusMessageIter iter, properties, dict; DBG("%s", path); @@ -1438,6 +1528,13 @@ static gboolean cm_context_added(DBusConnection *conn, dbus_message_iter_next(&iter); dbus_message_iter_recurse(&iter, &properties); + /* Sometimes, we get an array instead of dict */ + if (dbus_message_iter_get_arg_type(&properties) == DBUS_TYPE_ARRAY) { + /* Must recurse again */ + dbus_message_iter_recurse(&properties, &dict); + if (add_cm_context(modem, context_path, &dict) != 0) + return TRUE; + } if (add_cm_context(modem, context_path, &properties) != 0) return TRUE; @@ -1451,6 +1548,7 @@ static gboolean cm_context_removed(DBusConnection *conn, const char *path = dbus_message_get_path(message); const char *context_path; struct modem_data *modem; + struct network_context *context; DBusMessageIter iter; DBG("context path %s", path); @@ -1464,7 +1562,8 @@ static gboolean cm_context_removed(DBusConnection *conn, if (!modem) return TRUE; - remove_cm_context(modem, context_path); + context = get_context_with_path(modem->context_list, context_path); + remove_cm_context(modem, context); return TRUE; } @@ -1473,6 +1572,7 @@ static void netreg_update_name(struct modem_data *modem, DBusMessageIter* value) { char *name; + GSList *list; dbus_message_iter_get_basic(value, &name); @@ -1481,21 +1581,30 @@ static void netreg_update_name(struct modem_data *modem, g_free(modem->name); modem->name = g_strdup(name); - if (!modem->network) + if (!modem->context_list) return; - connman_network_set_name(modem->network, modem->name); - connman_network_update(modem->network); + /* For all the context */ + for (list = modem->context_list; list; list = list->next) { + struct network_context *context = list->data; + + if (context->network) { + connman_network_set_name(context->network, modem->name); + connman_network_update(context->network); + } + } } static void netreg_update_strength(struct modem_data *modem, DBusMessageIter *value) { + GSList *list; + dbus_message_iter_get_basic(value, &modem->strength); DBG("%s Strength %d", modem->path, modem->strength); - if (!modem->network) + if (!modem->context_list) return; /* @@ -1514,19 +1623,29 @@ static void netreg_update_strength(struct modem_data *modem, if (modem->data_strength != 0) return; - connman_network_set_strength(modem->network, modem->strength); - connman_network_update(modem->network); + /* For all the context */ + for (list = modem->context_list; list; list = list->next) { + struct network_context *context = list->data; + + if (context->network) { + connman_network_set_strength(context->network, + modem->strength); + connman_network_update(context->network); + } + } } /* Retrieve 1xEVDO Data Strength signal */ static void netreg_update_datastrength(struct modem_data *modem, DBusMessageIter *value) { + GSList *list; + dbus_message_iter_get_basic(value, &modem->data_strength); DBG("%s Data Strength %d", modem->path, modem->data_strength); - if (!modem->network) + if (!modem->context_list) return; /* @@ -1537,8 +1656,16 @@ static void netreg_update_datastrength(struct modem_data *modem, if (modem->data_strength == 0) return; - connman_network_set_strength(modem->network, modem->data_strength); - connman_network_update(modem->network); + /* For all the context */ + for (list = modem->context_list; list; list = list->next) { + struct network_context *context = list->data; + + if (context->network) { + connman_network_set_strength(context->network, + modem->data_strength); + connman_network_update(context->network); + } + } } static void netreg_update_status(struct modem_data *modem, @@ -1546,6 +1673,7 @@ static void netreg_update_status(struct modem_data *modem, { char *status; bool roaming; + GSList *list; dbus_message_iter_get_basic(value, &status); @@ -1557,12 +1685,19 @@ static void netreg_update_status(struct modem_data *modem, modem->roaming = roaming; - if (!modem->network) + if (!modem->context_list) return; - connman_network_set_bool(modem->network, + /* For all the context */ + for (list = modem->context_list; list; list = list->next) { + struct network_context *context = list->data; + + if (context->network) { + connman_network_set_bool(context->network, "Roaming", modem->roaming); - connman_network_update(modem->network); + connman_network_update(context->network); + } + } } static void netreg_update_regdom(struct modem_data *modem, @@ -1624,6 +1759,8 @@ static gboolean netreg_changed(DBusConnection *conn, DBusMessage *message, static void netreg_properties_reply(struct modem_data *modem, DBusMessageIter *dict) { + GSList *list = NULL; + DBG("%s", modem->path); while (dbus_message_iter_get_arg_type(dict) == DBUS_TYPE_DICT_ENTRY) { @@ -1648,7 +1785,7 @@ static void netreg_properties_reply(struct modem_data *modem, dbus_message_iter_next(dict); } - if (!modem->context) { + if (!modem->context_list) { /* * netgreg_get_properties() was issued after we got * cm_get_contexts_reply() where we create the @@ -1659,12 +1796,15 @@ static void netreg_properties_reply(struct modem_data *modem, */ return; } + /* Check for all contexts if they are valids and/or actives */ + for (list = modem->context_list; list; list = list->next) { + struct network_context *context = list->data; - if (modem->valid_apn) - add_network(modem); - - if (modem->active) - set_connected(modem); + if (context->valid_apn) + add_network(modem, context); + if (context->active) + set_connected(modem, context); + } } static int netreg_get_properties(struct modem_data *modem) @@ -1675,6 +1815,7 @@ static int netreg_get_properties(struct modem_data *modem) static void add_cdma_network(struct modem_data *modem) { + struct network_context *context = NULL; /* Be sure that device is created before adding CDMA network */ if (!modem->device) return; @@ -1683,16 +1824,20 @@ static void add_cdma_network(struct modem_data *modem) * CDMA modems don't need contexts for data call, however the current * add_network() logic needs one, so we create one to proceed. */ - if (!modem->context) - modem->context = network_context_alloc(modem->path); + if (!modem->context_list) { + context = network_context_alloc(modem->path); + modem->context_list = g_slist_prepend(modem->context_list, + context); + } else + context = modem->context_list->data; if (!modem->name) modem->name = g_strdup("CDMA Network"); - add_network(modem); + add_network(modem, context); if (modem->cdma_cm_powered) - set_connected(modem); + set_connected(modem, context); } static gboolean cdma_netreg_changed(DBusConnection *conn, @@ -1733,7 +1878,7 @@ static gboolean cdma_netreg_changed(DBusConnection *conn, if (modem->registered) add_cdma_network(modem); else - remove_network(modem); + remove_all_networks(modem); return TRUE; } @@ -1768,7 +1913,7 @@ static void cdma_netreg_properties_reply(struct modem_data *modem, if (modem->registered) add_cdma_network(modem); else - remove_network(modem); + remove_all_networks(modem); } static int cdma_netreg_get_properties(struct modem_data *modem) @@ -1788,7 +1933,7 @@ static void cm_update_attached(struct modem_data *modem, DBG("%s Attached %d", modem->path, modem->attached); if (!modem->attached) { - remove_network(modem); + remove_all_networks(modem); return; } @@ -1849,6 +1994,7 @@ static gboolean cm_changed(DBusConnection *conn, DBusMessage *message, static void cdma_cm_update_powered(struct modem_data *modem, DBusMessageIter *value) { + struct network_context *context = NULL; dbus_bool_t cdma_cm_powered; dbus_message_iter_get_basic(value, &cdma_cm_powered); @@ -1856,13 +2002,15 @@ static void cdma_cm_update_powered(struct modem_data *modem, DBG("%s CDMA cm Powered %d", modem->path, modem->cdma_cm_powered); - if (!modem->network) + if (!modem->context_list) return; + /* In case of CDMA, there is only one context */ + context = modem->context_list->data; if (modem->cdma_cm_powered) - set_connected(modem); + set_connected(modem, context); else - set_disconnected(modem); + set_disconnected(context); } static void cdma_cm_update_settings(struct modem_data *modem, @@ -1870,7 +2018,7 @@ static void cdma_cm_update_settings(struct modem_data *modem, { DBG("%s Settings", modem->path); - extract_ipv4_settings(value, modem->context); + extract_ipv4_settings(value, modem->context_list->data); } static gboolean cdma_cm_changed(DBusConnection *conn, @@ -1885,7 +2033,7 @@ static gboolean cdma_cm_changed(DBusConnection *conn, if (!modem) return TRUE; - if (modem->online && !modem->network) + if (modem->online && !modem->context_list) cdma_netreg_get_properties(modem); if (!dbus_message_iter_init(message, &iter)) @@ -2142,17 +2290,24 @@ static void modem_update_interfaces(struct modem_data *modem, if (api_added(old_ifaces, new_ifaces, OFONO_API_CDMA_NETREG)) cdma_netreg_get_properties(modem); - if (api_removed(old_ifaces, new_ifaces, OFONO_API_CM)) - remove_cm_context(modem, modem->context->path); + if (api_removed(old_ifaces, new_ifaces, OFONO_API_CM)) { + if (modem->call_get_contexts) { + DBG("cancelling pending GetContexts call"); + dbus_pending_call_cancel(modem->call_get_contexts); + dbus_pending_call_unref(modem->call_get_contexts); + modem->call_get_contexts = NULL; + } + remove_all_contexts(modem); + } if (api_removed(old_ifaces, new_ifaces, OFONO_API_CDMA_CM)) - remove_cm_context(modem, modem->context->path); + remove_all_contexts(modem); if (api_removed(old_ifaces, new_ifaces, OFONO_API_NETREG)) - remove_network(modem); + remove_all_networks(modem); if (api_removed(old_ifaces, new_ifaces, OFONO_API_CDMA_NETREG)) - remove_network(modem); + remove_all_networks(modem); } static gboolean modem_changed(DBusConnection *conn, DBusMessage *message, @@ -2186,8 +2341,8 @@ static gboolean modem_changed(DBusConnection *conn, DBusMessage *message, DBG("%s Powered %d", modem->path, modem->powered); - if (!modem->powered) - modem_set_powered(modem, TRUE); + /* Set the powered according to the value */ + modem_set_powered(modem, powered); } else if (g_str_equal(key, "Online")) { dbus_bool_t online; @@ -2340,21 +2495,31 @@ static void remove_modem(gpointer data) DBG("%s", modem->path); - if (modem->call_set_property) + if (modem->call_set_property) { dbus_pending_call_cancel(modem->call_set_property); + dbus_pending_call_unref(modem->call_set_property); + modem->call_set_property = NULL; + } - if (modem->call_get_properties) + if (modem->call_get_properties) { dbus_pending_call_cancel(modem->call_get_properties); + dbus_pending_call_unref(modem->call_get_properties); + modem->call_get_properties = NULL; + } - if (modem->call_get_contexts) + if (modem->call_get_contexts) { dbus_pending_call_cancel(modem->call_get_contexts); + dbus_pending_call_unref(modem->call_get_contexts); + modem->call_get_contexts = NULL; + } + + /* Must remove the contexts before the device */ + if (modem->context_list) + remove_all_contexts(modem); if (modem->device) destroy_device(modem); - if (modem->context) - remove_cm_context(modem, modem->context->path); - g_free(modem->serial); g_free(modem->name); g_free(modem->imsi); @@ -2530,12 +2695,20 @@ static void network_remove(struct connman_network *network) static int network_connect(struct connman_network *network) { + struct network_context *context; struct modem_data *modem = connman_network_get_data(network); DBG("%s network %p", modem->path, network); + if (!g_hash_table_lookup(modem_hash, modem->path)) + return -ENODEV; + + context = get_context_with_network(modem->context_list, network); + if (!context) + return -ENODEV; + if (has_interface(modem->interfaces, OFONO_API_CM)) - return context_set_active(modem, TRUE); + return context_set_active(modem, context, TRUE); else if (has_interface(modem->interfaces, OFONO_API_CDMA_CM)) return cdma_cm_set_powered(modem, TRUE); @@ -2546,12 +2719,20 @@ static int network_connect(struct connman_network *network) static int network_disconnect(struct connman_network *network) { + struct network_context *context; struct modem_data *modem = connman_network_get_data(network); DBG("%s network %p", modem->path, network); + if (!g_hash_table_lookup(modem_hash, modem->path)) + return -ENODEV; + + context = get_context_with_network(modem->context_list, network); + if (!context) + return -ENODEV; + if (has_interface(modem->interfaces, OFONO_API_CM)) - return context_set_active(modem, FALSE); + return context_set_active(modem, context, FALSE); else if (has_interface(modem->interfaces, OFONO_API_CDMA_CM)) return cdma_cm_set_powered(modem, FALSE); diff --git a/plugins/pacrunner.c b/plugins/pacrunner.c index 850139fd..d2464a5e 100755 --- a/plugins/pacrunner.c +++ b/plugins/pacrunner.c @@ -78,11 +78,6 @@ done: dbus_message_unref(reply); } -static void append_string(DBusMessageIter *iter, void *user_data) -{ - dbus_message_iter_append_basic(iter, DBUS_TYPE_STRING, user_data); -} - static void append_string_list(DBusMessageIter *iter, void *user_data) { char **list = user_data; @@ -178,11 +173,6 @@ static void create_proxy_configuration(void) g_free(interface); } - str = connman_service_get_domainname(default_service); - if (str) - connman_dbus_dict_append_array(&dict, "Domains", - DBUS_TYPE_STRING, append_string, &str); - str_list = connman_service_get_nameservers(default_service); if (str_list) connman_dbus_dict_append_array(&dict, "Nameservers", diff --git a/plugins/session_policy_local.c b/plugins/session_policy_local.c index b2369bdc..f003c0e1 100755 --- a/plugins/session_policy_local.c +++ b/plugins/session_policy_local.c @@ -459,6 +459,8 @@ static int load_policy(GKeyFile *keyfile, const char *groupname, str = g_key_file_get_string(keyfile, groupname, "AllowedBearers", NULL); if (str) { + g_slist_free(config->allowed_bearers); + config->allowed_bearers = NULL; tokens = g_strsplit(str, " ", 0); for (i = 0; tokens[i]; i++) { @@ -623,7 +625,7 @@ static int load_file(const char *filename, struct policy_file *file) for (i = 0; groupnames[i]; i++) { group = g_new0(struct policy_group, 1); - group->config = g_new0(struct connman_session_config, 1); + group->config = connman_session_create_default_config(); err = load_policy(keyfile, groupnames[i], group); if (err < 0) { diff --git a/plugins/vpn.c b/plugins/vpn.c index ba5841e1..d3d75b81 100755 --- a/plugins/vpn.c +++ b/plugins/vpn.c @@ -203,7 +203,7 @@ static void resolv_result(GResolvResultStatus status, * We cannot unref the resolver here as resolv struct is manipulated * by gresolv.c after we return from this callback. */ - g_timeout_add_seconds(0, remove_resolv, data); + g_idle_add(remove_resolv, data); data->resolv_id = 0; } @@ -512,26 +512,39 @@ done: dbus_pending_call_unref(call); } -static int connect_provider(struct connection_data *data, void *user_data) +static int connect_provider(struct connection_data *data, void *user_data, + const char *dbus_sender) { DBusPendingCall *call; DBusMessage *message; struct config_create_data *cb_data = user_data; - DBG("data %p user %p path %s", data, cb_data, data->path); + DBG("data %p user %p path %s sender %s", data, cb_data, data->path, + dbus_sender); data->connect_pending = false; +#define VPN_CONNECT2 "Connect2" + + /* We need to pass original dbus sender to connman-vpnd, + * use a Connect2 method for that. + */ message = dbus_message_new_method_call(VPN_SERVICE, data->path, VPN_CONNECTION_INTERFACE, - VPN_CONNECT); + VPN_CONNECT2); if (!message) return -ENOMEM; + if (dbus_sender) + dbus_message_append_args(message, DBUS_TYPE_STRING, + &dbus_sender, NULL); + else + dbus_sender = ""; + if (!dbus_connection_send_with_reply(connection, message, &call, DBUS_TIMEOUT)) { connman_error("Unable to call %s.%s()", - VPN_CONNECTION_INTERFACE, VPN_CONNECT); + VPN_CONNECTION_INTERFACE, VPN_CONNECT2); dbus_message_unref(message); return -EINVAL; } @@ -658,8 +671,15 @@ static void add_connection(const char *path, DBusMessageIter *properties, connman_provider_set_domain(data->provider, data->domain); - if (data->connect_pending) - connect_provider(data, data->cb_data); + if (data->connect_pending) { + const char *dbus_sender = NULL; + + if (data->cb_data && data->cb_data->message) { + dbus_sender = + dbus_message_get_sender(data->cb_data->message); + } + connect_provider(data, data->cb_data, dbus_sender); + } return; @@ -857,7 +877,8 @@ static int provider_remove(struct connman_provider *provider) return 0; } -static int provider_connect(struct connman_provider *provider) +static int provider_connect(struct connman_provider *provider, + const char *dbus_sender) { struct connection_data *data; @@ -865,7 +886,7 @@ static int provider_connect(struct connman_provider *provider) if (!data) return -EINVAL; - return connect_provider(data, NULL); + return connect_provider(data, NULL, dbus_sender); } static void disconnect_reply(DBusPendingCall *call, void *user_data) diff --git a/plugins/wifi.c b/plugins/wifi.c index 0d33f4d0..8bc6307b 100755 --- a/plugins/wifi.c +++ b/plugins/wifi.c @@ -71,14 +71,27 @@ #define P2P_LISTEN_PERIOD 500 #define P2P_LISTEN_INTERVAL 2000 +#define ASSOC_STATUS_NO_CLIENT 17 +#define LOAD_SHAPING_MAX_RETRIES 3 static struct connman_technology *wifi_technology = NULL; static struct connman_technology *p2p_technology = NULL; +enum wifi_ap_capability{ + WIFI_AP_UNKNOWN = 0, + WIFI_AP_SUPPORTED = 1, + WIFI_AP_NOT_SUPPORTED = 2, +}; + struct hidden_params { char ssid[32]; unsigned int ssid_len; char *identity; + char *anonymous_identity; + char *subject_match; + char *altsubject_match; + char *domain_suffix_match; + char *domain_match; char *passphrase; char *security; GSupplicantScanParams *scan_params; @@ -96,6 +109,13 @@ struct autoscan_params { unsigned int timeout; }; +struct wifi_tethering_info { + struct wifi_data *wifi; + struct connman_technology *technology; + char *ifname; + GSupplicantSSID *ssid; +}; + struct wifi_data { char *identifier; struct connman_device *device; @@ -107,6 +127,7 @@ struct wifi_data { bool connected; bool disconnecting; bool tethering; + enum wifi_ap_capability ap_supported; bool bridged; bool interface_ready; const char *bridge; @@ -114,8 +135,10 @@ struct wifi_data { unsigned flags; unsigned int watch; int retries; + int load_shaping_retries; struct hidden_params *hidden; bool postpone_hidden; + struct wifi_tethering_info *tethering_param; /** * autoscan "emulation". */ @@ -125,7 +148,7 @@ struct wifi_data { unsigned int p2p_find_timeout; unsigned int p2p_connection_timeout; struct connman_peer *pending_peer; - GSupplicantPeer *peer; + GSList *peers; bool p2p_connecting; bool p2p_device; int servicing; @@ -158,6 +181,10 @@ bool wfd_service_registered = false; static void start_autoscan(struct connman_device *device); +static int tech_set_tethering(struct connman_technology *technology, + const char *identifier, const char *passphrase, + const char *bridge, bool enabled); + #if defined TIZEN_EXT #define NETCONFIG_SERVICE "net.netconfig" #define NETCONFIG_WIFI_PATH "/net/netconfig/wifi" @@ -363,8 +390,6 @@ static void peer_cancel_timeout(struct wifi_data *wifi) connman_peer_unref(wifi->pending_peer); wifi->pending_peer = NULL; } - - wifi->peer = NULL; } static gboolean peer_connect_timeout(gpointer data) @@ -375,8 +400,11 @@ static gboolean peer_connect_timeout(gpointer data) if (wifi->p2p_connecting) { enum connman_peer_state state = CONNMAN_PEER_STATE_FAILURE; + GSupplicantPeer *gs_peer = + g_supplicant_interface_peer_lookup(wifi->interface, + connman_peer_get_identifier(wifi->pending_peer)); - if (g_supplicant_peer_has_requested_connection(wifi->peer)) + if (g_supplicant_peer_has_requested_connection(gs_peer)) state = CONNMAN_PEER_STATE_IDLE; connman_peer_set_state(wifi->pending_peer, state); @@ -427,14 +455,12 @@ static int peer_connect(struct connman_peer *peer, return -ENODEV; wifi = connman_device_get_data(device); - if (!wifi) + if (!wifi || !wifi->interface) return -ENODEV; if (wifi->p2p_connecting) return -EBUSY; - wifi->peer = NULL; - gs_peer = g_supplicant_interface_peer_lookup(wifi->interface, connman_peer_get_identifier(peer)); if (!gs_peer) @@ -473,10 +499,12 @@ static int peer_connect(struct connman_peer *peer, peer_connect_callback, wifi); if (ret == -EINPROGRESS) { wifi->pending_peer = connman_peer_ref(peer); - wifi->peer = gs_peer; wifi->p2p_connecting = true; - } else if (ret < 0) + } else if (ret < 0) { + g_free(peer_params->path); + g_free(peer_params->wps_pin); g_free(peer_params); + } return ret; } @@ -509,8 +537,10 @@ static int peer_disconnect(struct connman_peer *peer) &peer_params); g_free(peer_params.path); - if (ret == -EINPROGRESS) + if (ret == -EINPROGRESS) { peer_cancel_timeout(wifi); + wifi->p2p_device = false; + } return ret; } @@ -879,6 +909,8 @@ static int wifi_probe(struct connman_device *device) return -ENOMEM; wifi->state = G_SUPPLICANT_STATE_INACTIVE; + wifi->ap_supported = WIFI_AP_UNKNOWN; + wifi->tethering_param = NULL; connman_device_set_data(device, wifi); wifi->device = connman_device_ref(device); @@ -912,6 +944,21 @@ static void remove_networks(struct connman_device *device, wifi->networks = NULL; } +static void remove_peers(struct wifi_data *wifi) +{ + GSList *list; + + for (list = wifi->peers; list; list = list->next) { + struct connman_peer *peer = list->data; + + connman_peer_unregister(peer); + connman_peer_unref(peer); + } + + g_slist_free(wifi->peers); + wifi->peers = NULL; +} + static void reset_autoscan(struct connman_device *device) { struct wifi_data *wifi = connman_device_get_data(device); @@ -995,6 +1042,7 @@ static void wifi_remove(struct connman_device *device) g_source_remove(wifi->p2p_connection_timeout); remove_networks(device, wifi); + remove_peers(wifi); connman_device_set_powered(device, false); connman_device_set_data(device, NULL); @@ -1731,6 +1779,7 @@ static int wifi_disable(struct connman_device *device) } remove_networks(device, wifi); + remove_peers(wifi); #if defined TIZEN_EXT wifi->scan_pending_network = NULL; @@ -1894,12 +1943,14 @@ static gboolean p2p_find_stop(gpointer data) DBG(""); - wifi->p2p_find_timeout = 0; + if (wifi) { + wifi->p2p_find_timeout = 0; + + g_supplicant_interface_p2p_stop_find(wifi->interface); + } connman_device_set_scanning(device, CONNMAN_SERVICE_TYPE_P2P, false); - g_supplicant_interface_p2p_stop_find(wifi->interface); - connman_device_unref(device); reset_autoscan(device); @@ -1914,6 +1965,9 @@ static void p2p_find_callback(int result, GSupplicantInterface *interface, DBG("result %d wifi %p", result, wifi); + if (!wifi) + goto error; + if (wifi->p2p_find_timeout) { g_source_remove(wifi->p2p_find_timeout); wifi->p2p_find_timeout = 0; @@ -2117,16 +2171,16 @@ static int wifi_scan(enum connman_service_type type, return -ENODEV; if (wifi->p2p_device) - return 0; + return -EBUSY; + + if (wifi->tethering) + return -EBUSY; if (type == CONNMAN_SERVICE_TYPE_P2P) return p2p_find(device); DBG("device %p wifi %p hidden ssid %s", device, wifi->interface, ssid); - if (wifi->tethering) - return 0; - scanning = connman_device_get_scanning(device); if (!ssid || ssid_len == 0 || ssid_len > 32) { @@ -2419,8 +2473,18 @@ static void ssid_init(GSupplicantSSID *ssid, struct connman_network *network) ssid->identity = connman_network_get_string(network, "WiFi.AgentIdentity"); + ssid->anonymous_identity = connman_network_get_string(network, + "WiFi.AnonymousIdentity"); ssid->ca_cert_path = connman_network_get_string(network, "WiFi.CACertFile"); + ssid->subject_match = connman_network_get_string(network, + "WiFi.SubjectMatch"); + ssid->altsubject_match = connman_network_get_string(network, + "WiFi.AltSubjectMatch"); + ssid->domain_suffix_match = connman_network_get_string(network, + "WiFi.DomainSuffixMatch"); + ssid->domain_match = connman_network_get_string(network, + "WiFi.DomainMatch"); ssid->client_cert_path = connman_network_get_string(network, "WiFi.ClientCertFile"); ssid->private_key_path = connman_network_get_string(network, @@ -2521,20 +2585,12 @@ found: } if (wifi->network) { - /* - * if result < 0 supplican return an error because - * the network is not current. - * we wont receive G_SUPPLICANT_STATE_DISCONNECTED since it - * failed, call connman_network_set_connected to report - * disconnect is completed. - */ - if (result < 0) - connman_network_set_connected(wifi->network, false); + connman_network_set_connected(wifi->network, false); + wifi->network = NULL; } - wifi->network = NULL; - wifi->disconnecting = false; + wifi->connected = false; if (wifi->pending_network) { network_connect(wifi->pending_network); @@ -2625,6 +2681,7 @@ static void interface_added(GSupplicantInterface *interface) if (!wifi) return; + wifi->interface = interface; g_supplicant_interface_set_data(interface, wifi); p2p_iface_list = g_list_append(p2p_iface_list, wifi); wifi->p2p_device = true; @@ -2746,7 +2803,7 @@ static bool handle_wps_completion(GSupplicantInterface *interface, return true; } - ret = send_encryption_request(passphrase, network); + ret = send_encryption_request(passphrase, passphrase); g_free(passphrase); @@ -2766,6 +2823,19 @@ static bool handle_wps_completion(GSupplicantInterface *interface, return true; } +static bool handle_assoc_status_code(GSupplicantInterface *interface, + struct wifi_data *wifi) +{ + if (wifi->state == G_SUPPLICANT_STATE_ASSOCIATING && + wifi->assoc_code == ASSOC_STATUS_NO_CLIENT && + wifi->load_shaping_retries < LOAD_SHAPING_MAX_RETRIES) { + wifi->load_shaping_retries ++; + return TRUE; + } + wifi->load_shaping_retries = 0; + return FALSE; +} + static bool handle_4way_handshake_failure(GSupplicantInterface *interface, struct connman_network *network, struct wifi_data *wifi) @@ -2864,6 +2934,7 @@ static void interface_state(GSupplicantInterface *interface) struct wifi_data *wifi; GSupplicantState state = g_supplicant_interface_get_state(interface); bool wps; + bool old_connected; wifi = g_supplicant_interface_get_data(interface); @@ -2872,6 +2943,14 @@ static void interface_state(GSupplicantInterface *interface) if (!wifi) return; + if (state == G_SUPPLICANT_STATE_COMPLETED) { + if (wifi->tethering_param) { + g_free(wifi->tethering_param->ssid); + g_free(wifi->tethering_param); + wifi->tethering_param = NULL; + } + } + device = wifi->device; if (!device) return; @@ -2888,6 +2967,9 @@ static void interface_state(GSupplicantInterface *interface) switch (state) { case G_SUPPLICANT_STATE_SCANNING: + if (wifi->connected) + connman_network_set_connected(network, false); + break; case G_SUPPLICANT_STATE_AUTHENTICATING: @@ -2928,8 +3010,10 @@ static void interface_state(GSupplicantInterface *interface) break; connman_network_set_connected(network, true); + wifi->disconnect_code = 0; wifi->assoc_code = 0; + wifi->load_shaping_retries = 0; break; case G_SUPPLICANT_STATE_DISCONNECTED: @@ -2947,6 +3031,9 @@ static void interface_state(GSupplicantInterface *interface) if (is_idle(wifi)) break; + if (handle_assoc_status_code(interface, wifi)) + break; + /* If previous state was 4way-handshake, then * it's either: psk was incorrect and thus we retry * or if we reach the maximum retries we declare the @@ -2969,13 +3056,6 @@ static void interface_state(GSupplicantInterface *interface) break; } - - /* We disable the selected network, if not then - * wpa_supplicant will loop retrying */ - if (g_supplicant_interface_enable_selected_network(interface, - FALSE) != 0) - DBG("Could not disables selected network"); - #if defined TIZEN_EXT int err; @@ -3041,6 +3121,7 @@ static void interface_state(GSupplicantInterface *interface) break; } + old_connected = wifi->connected; wifi->state = state; /* Saving wpa_s state policy: @@ -3052,10 +3133,6 @@ static void interface_state(GSupplicantInterface *interface) * --> We are not connected * */ switch (state) { -#if defined TIZEN_EXT - case G_SUPPLICANT_STATE_SCANNING: - break; -#endif case G_SUPPLICANT_STATE_AUTHENTICATING: case G_SUPPLICANT_STATE_ASSOCIATING: case G_SUPPLICANT_STATE_ASSOCIATED: @@ -3064,8 +3141,12 @@ static void interface_state(GSupplicantInterface *interface) if (wifi->connected) connman_warn("Probably roaming right now!" " Staying connected..."); - else - wifi->connected = false; + break; + case G_SUPPLICANT_STATE_SCANNING: + wifi->connected = false; + + if (old_connected) + start_autoscan(device); break; case G_SUPPLICANT_STATE_COMPLETED: wifi->connected = true; @@ -3106,24 +3187,24 @@ static void interface_removed(GSupplicantInterface *interface) static void set_device_type(const char *type, char dev_type[17]) { const char *oui = "0050F204"; - const char *category = "0100"; + const char *category = "0001"; const char *sub_category = "0000"; if (!g_strcmp0(type, "handset")) { - category = "0A00"; - sub_category = "0500"; + category = "000A"; + sub_category = "0005"; } else if (!g_strcmp0(type, "vm") || !g_strcmp0(type, "container")) - sub_category = "0100"; + sub_category = "0001"; else if (!g_strcmp0(type, "server")) - sub_category = "0200"; + sub_category = "0002"; else if (!g_strcmp0(type, "laptop")) - sub_category = "0500"; + sub_category = "0005"; else if (!g_strcmp0(type, "desktop")) - sub_category = "0600"; + sub_category = "0006"; else if (!g_strcmp0(type, "tablet")) - sub_category = "0900"; + sub_category = "0009"; else if (!g_strcmp0(type, "watch")) - category = "FF00"; + category = "00FF"; snprintf(dev_type, 17, "%s%s%s", category, oui, sub_category); } @@ -3135,6 +3216,9 @@ static void p2p_support(GSupplicantInterface *interface) DBG(""); + if (!interface) + return; + if (!g_supplicant_interface_has_p2p(interface)) return; @@ -3194,6 +3278,36 @@ static void scan_finished(GSupplicantInterface *interface) #endif } +static void ap_create_fail(GSupplicantInterface *interface) +{ + struct wifi_data *wifi = g_supplicant_interface_get_data(interface); + int ret; + + if ((wifi->tethering) && (wifi->tethering_param)) { + DBG("%s create AP fail \n", + g_supplicant_interface_get_ifname(wifi->interface)); + + connman_inet_remove_from_bridge(wifi->index, wifi->bridge); + wifi->ap_supported = WIFI_AP_NOT_SUPPORTED; + wifi->tethering = false; + + ret = tech_set_tethering(wifi->tethering_param->technology, + wifi->tethering_param->ssid->ssid, + wifi->tethering_param->ssid->passphrase, + wifi->bridge, true); + + if ((ret == -EOPNOTSUPP) && (wifi_technology)) { + connman_technology_tethering_notify(wifi_technology,false); + } + + g_free(wifi->tethering_param->ssid); + g_free(wifi->tethering_param); + wifi->tethering_param = NULL; + } + + return; +} + static unsigned char calculate_strength(GSupplicantNetwork *supplicant_network) { unsigned char strength; @@ -3221,7 +3335,8 @@ static void network_added(GSupplicantNetwork *supplicant_network) bool wps_advertizing; #if defined TIZEN_EXT - GSList *vsie_list = NULL; + const char *wifi_vsie; + unsigned int wifi_vsie_len; #endif mode = g_supplicant_network_get_mode(supplicant_network); @@ -3248,6 +3363,9 @@ static void network_added(GSupplicantNetwork *supplicant_network) ssid = g_supplicant_network_get_ssid(supplicant_network, &ssid_len); +#if defined TIZEN_EXT + wifi_vsie = g_supplicant_network_get_wifi_vsie(supplicant_network, &wifi_vsie_len); +#endif network = connman_device_get_network(wifi->device, identifier); if (!network) { @@ -3272,11 +3390,9 @@ static void network_added(GSupplicantNetwork *supplicant_network) connman_network_set_blob(network, "WiFi.SSID", ssid, ssid_len); #if defined TIZEN_EXT - vsie_list = (GSList *)g_supplicant_network_get_wifi_vsie(supplicant_network); - if (vsie_list) - connman_network_set_vsie_list(network, vsie_list); - else - DBG("vsie_list is NULL"); + if(wifi_vsie_len > 0 && wifi_vsie) + connman_network_set_blob(network, "WiFi.Vsie", + wifi_vsie, wifi_vsie_len); #endif connman_network_set_string(network, "WiFi.Security", security); connman_network_set_strength(network, @@ -3433,6 +3549,57 @@ static void network_changed(GSupplicantNetwork *network, const char *property) #endif } +static void network_associated(GSupplicantNetwork *network) +{ + GSupplicantInterface *interface; + struct wifi_data *wifi; + struct connman_network *connman_network; + const char *identifier; + + DBG(""); + + interface = g_supplicant_network_get_interface(network); + if (!interface) + return; + + wifi = g_supplicant_interface_get_data(interface); + if (!wifi) + return; + + identifier = g_supplicant_network_get_identifier(network); + + connman_network = connman_device_get_network(wifi->device, identifier); + if (!connman_network) + return; + + if (wifi->network) { + if (wifi->network == connman_network) + return; + + /* + * This should never happen, we got associated with + * a network different than the one we were expecting. + */ + DBG("Associated to %p while expecting %p", + connman_network, wifi->network); + + connman_network_set_associating(wifi->network, false); + } + + DBG("Reconnecting to previous network %p from wpa_s", connman_network); + + wifi->network = connman_network_ref(connman_network); + wifi->retries = 0; + + /* + * Interface state changes callback (interface_state) is always + * called before network_associated callback thus we need to call + * interface_state again in order to process the new state now that + * we have the network properly set. + */ + interface_state(interface); +} + static void apply_peer_services(GSupplicantPeer *peer, struct connman_peer *connman_peer) { @@ -3489,6 +3656,8 @@ static void peer_found(GSupplicantPeer *peer) ret = connman_peer_register(connman_peer); if (ret < 0 && ret != -EALREADY) connman_peer_unref(connman_peer); + else + wifi->peers = g_slist_prepend(wifi->peers, connman_peer); } static void peer_lost(GSupplicantPeer *peer) @@ -3514,6 +3683,8 @@ static void peer_lost(GSupplicantPeer *peer) connman_peer_unregister(connman_peer); connman_peer_unref(connman_peer); } + + wifi->peers = g_slist_remove(wifi->peers, connman_peer); } static void peer_changed(GSupplicantPeer *peer, GSupplicantPeerState state) @@ -3533,6 +3704,9 @@ static void peer_changed(GSupplicantPeer *peer, GSupplicantPeerState state) DBG("ident: %s", identifier); + if (!wifi) + return; + connman_peer = connman_peer_get(wifi->device, identifier); if (!connman_peer) return; @@ -3595,6 +3769,14 @@ static void peer_changed(GSupplicantPeer *peer, GSupplicantPeerState state) connman_peer_set_as_master(connman_peer, !g_supplicant_peer_is_client(peer)); connman_peer_set_sub_device(connman_peer, g_wifi->device); + + /* + * If wpa_supplicant didn't create a dedicated p2p-group + * interface then mark this interface as p2p_device to avoid + * scan and auto-scan are launched on it while P2P is connected. + */ + if (!g_list_find(p2p_iface_list, g_wifi)) + wifi->p2p_device = true; } connman_peer_set_state(connman_peer, p_state); @@ -3727,6 +3909,7 @@ static void disconnect_reasoncode(GSupplicantInterface *interface, int reasoncode) { struct wifi_data *wifi = g_supplicant_interface_get_data(interface); + if (wifi != NULL) { wifi->disconnect_code = reasoncode; } @@ -3736,18 +3919,8 @@ static void assoc_status_code(GSupplicantInterface *interface, int status_code) { struct wifi_data *wifi = g_supplicant_interface_get_data(interface); -#if defined TIZEN_EXT - struct connman_network *network; -#endif - if (wifi != NULL) { wifi->assoc_code = status_code; - -#if defined TIZEN_EXT - network = wifi->network; - connman_network_set_assoc_status_code(network,status_code); -#endif - } } @@ -3760,9 +3933,11 @@ static const GSupplicantCallbacks callbacks = { .p2p_support = p2p_support, .scan_started = scan_started, .scan_finished = scan_finished, + .ap_create_fail = ap_create_fail, .network_added = network_added, .network_removed = network_removed, .network_changed = network_changed, + .network_associated = network_associated, .add_station = add_station, .remove_station = remove_station, .peer_found = peer_found, @@ -3771,12 +3946,12 @@ static const GSupplicantCallbacks callbacks = { .peer_request = peer_request, #if defined TIZEN_EXT .system_power_off = system_power_off, - .network_merged = network_merged, + .network_merged = network_merged, .assoc_failed = assoc_failed, #endif + .debug = debug, .disconnect_reasoncode = disconnect_reasoncode, .assoc_status_code = assoc_status_code, - .debug = debug, }; @@ -3792,15 +3967,8 @@ static void tech_remove(struct connman_technology *technology) wifi_technology = NULL; } -struct wifi_tethering_info { - struct wifi_data *wifi; - struct connman_technology *technology; - char *ifname; - GSupplicantSSID *ssid; -}; - static GSupplicantSSID *ssid_ap_init(const char *ssid, - const char *passphrase, bool hidden) + const char *passphrase) { GSupplicantSSID *ap; @@ -3825,12 +3993,6 @@ static GSupplicantSSID *ssid_ap_init(const char *ssid, ap->passphrase = passphrase; } - if (hidden) - ap->ignore_broadcast_ssid = - G_SUPPLICANT_AP_HIDDEN_SSID_ZERO_CONTENTS; - else - ap->ignore_broadcast_ssid = G_SUPPLICANT_AP_NO_SSID_HIDING; - return ap; } @@ -3842,10 +4004,16 @@ static void ap_start_callback(int result, GSupplicantInterface *interface, DBG("result %d index %d bridge %s", result, info->wifi->index, info->wifi->bridge); - if (result < 0) { + if ((result < 0) || (info->wifi->ap_supported != WIFI_AP_SUPPORTED)) { connman_inet_remove_from_bridge(info->wifi->index, info->wifi->bridge); - connman_technology_tethering_notify(info->technology, false); + + if (info->wifi->ap_supported == WIFI_AP_SUPPORTED) { + connman_technology_tethering_notify(info->technology, false); + g_free(info->wifi->tethering_param->ssid); + g_free(info->wifi->tethering_param); + info->wifi->tethering_param = NULL; + } } g_free(info->ifname); @@ -3861,10 +4029,17 @@ static void ap_create_callback(int result, DBG("result %d ifname %s", result, g_supplicant_interface_get_ifname(interface)); - if (result < 0) { + if ((result < 0) || (info->wifi->ap_supported != WIFI_AP_SUPPORTED)) { connman_inet_remove_from_bridge(info->wifi->index, info->wifi->bridge); - connman_technology_tethering_notify(info->technology, false); + + if (info->wifi->ap_supported == WIFI_AP_SUPPORTED) { + connman_technology_tethering_notify(info->technology, false); + g_free(info->wifi->tethering_param->ssid); + g_free(info->wifi->tethering_param); + info->wifi->tethering_param = NULL; + + } g_free(info->ifname); g_free(info->ssid); @@ -3891,27 +4066,32 @@ static void sta_remove_callback(int result, DBG("ifname %s result %d ", info->ifname, result); - if (result < 0) { - info->wifi->tethering = true; + if (result < 0 || (info->wifi->ap_supported != WIFI_AP_SUPPORTED)) { + info->wifi->tethering = false; + connman_technology_tethering_notify(info->technology, false); g_free(info->ifname); g_free(info->ssid); g_free(info); + + if (info->wifi->ap_supported == WIFI_AP_SUPPORTED) { + g_free(info->wifi->tethering_param->ssid); + g_free(info->wifi->tethering_param); + info->wifi->tethering_param = NULL; + } return; } info->wifi->interface = NULL; - connman_technology_tethering_notify(info->technology, true); - g_supplicant_interface_create(info->ifname, driver, info->wifi->bridge, ap_create_callback, info); } -static int tech_set_tethering(struct connman_technology *technology, - const char *identifier, const char *passphrase, - const char *bridge, bool enabled, bool hidden) +static int enable_wifi_tethering(struct connman_technology *technology, + const char *bridge, const char *identifier, + const char *passphrase, bool available) { GList *list; GSupplicantInterface *interface; @@ -3919,75 +4099,143 @@ static int tech_set_tethering(struct connman_technology *technology, struct wifi_tethering_info *info; const char *ifname; unsigned int mode; - int err; - - DBG(""); - - if (!enabled) { - for (list = iface_list; list; list = list->next) { - wifi = list->data; - - if (wifi->tethering) { - wifi->tethering = false; - - connman_inet_remove_from_bridge(wifi->index, - bridge); - wifi->bridged = false; - } - } - - connman_technology_tethering_notify(technology, false); - - return 0; - } + int err, berr = 0; for (list = iface_list; list; list = list->next) { wifi = list->data; + DBG("wifi %p network %p pending_network %p", wifi, + wifi->network, wifi->pending_network); + interface = wifi->interface; if (!interface) continue; + if (wifi->ap_supported == WIFI_AP_NOT_SUPPORTED) + continue; + ifname = g_supplicant_interface_get_ifname(wifi->interface); + if (wifi->ap_supported == WIFI_AP_NOT_SUPPORTED) { + DBG("%s does not support AP mode (detected)", ifname); + continue; + } + mode = g_supplicant_interface_get_mode(interface); if ((mode & G_SUPPLICANT_CAPABILITY_MODE_AP) == 0) { - DBG("%s does not support AP mode", ifname); + wifi->ap_supported = WIFI_AP_NOT_SUPPORTED; + DBG("%s does not support AP mode (capability)", ifname); continue; } + if (wifi->network && available) + continue; + info = g_try_malloc0(sizeof(struct wifi_tethering_info)); if (!info) return -ENOMEM; + wifi->tethering_param = g_try_malloc0(sizeof(struct wifi_tethering_info)); + if (!wifi->tethering_param) { + g_free(info); + return -ENOMEM; + } + info->wifi = wifi; info->technology = technology; info->wifi->bridge = bridge; - info->ssid = ssid_ap_init(identifier, passphrase, hidden); - if (!info->ssid) { - g_free(info); - continue; - } + info->ssid = ssid_ap_init(identifier, passphrase); + if (!info->ssid) + goto failed; + info->ifname = g_strdup(ifname); - if (!info->ifname) { - g_free(info->ssid); - g_free(info); - continue; - } + if (!info->ifname) + goto failed; + + wifi->tethering_param->technology = technology; + wifi->tethering_param->ssid = ssid_ap_init(identifier, passphrase); + if (!wifi->tethering_param->ssid) + goto failed; info->wifi->tethering = true; + info->wifi->ap_supported = WIFI_AP_SUPPORTED; + + berr = connman_technology_tethering_notify(technology, true); + if (berr < 0) + goto failed; err = g_supplicant_interface_remove(interface, sta_remove_callback, info); - if (err == 0) - return err; + if (err >= 0) { + DBG("tethering wifi %p ifname %s", wifi, ifname); + return 0; + } + + failed: + g_free(info->ifname); + g_free(info->ssid); + g_free(info); + g_free(wifi->tethering_param); + wifi->tethering_param = NULL; + + /* + * Remove bridge if it was correctly created but remove + * operation failed. Instead, if bridge creation failed then + * break out and do not try again on another interface, + * bridge set-up does not depend on it. + */ + if (berr == 0) + connman_technology_tethering_notify(technology, false); + else + break; } return -EOPNOTSUPP; } +static int tech_set_tethering(struct connman_technology *technology, + const char *identifier, const char *passphrase, + const char *bridge, bool enabled) +{ + GList *list; + struct wifi_data *wifi; + int err; + + DBG(""); + + if (!enabled) { + for (list = iface_list; list; list = list->next) { + wifi = list->data; + + if (wifi->tethering) { + wifi->tethering = false; + + connman_inet_remove_from_bridge(wifi->index, + bridge); + wifi->bridged = false; + } + } + + connman_technology_tethering_notify(technology, false); + + return 0; + } + + DBG("trying tethering for available devices"); + err = enable_wifi_tethering(technology, bridge, identifier, passphrase, + true); + + if (err < 0) { + DBG("trying tethering for any device"); + err = enable_wifi_tethering(technology, bridge, identifier, + passphrase, false); + } + + return err; +} + static void regdom_callback(int result, const char *alpha2, void *user_data) { DBG(""); diff --git a/scripts/connman.in b/scripts/connman.in index 2c380abb..f3d438f3 100755 --- a/scripts/connman.in +++ b/scripts/connman.in @@ -9,6 +9,11 @@ if [ -f @sysconfdir@/default/connman ] ; then . @sysconfdir@/default/connman fi +if [ "CONNMAN_RUNSTATEDIR_RESOLVCONF" != "no" ] ; then + mkdir -p @runstatedir@/connman + ln -sf @runstatedir@/connman/resolv.conf /etc/ +fi + set -e do_start() { @@ -63,7 +63,7 @@ static int tunnel_create(struct in_addr *addr) { struct ip_tunnel_parm p; struct ifreq ifr; - int fd = -1; + int fd; int ret; /* ip tunnel add tun6to4 mode sit remote any local 1.2.3.4 ttl 64 */ diff --git a/src/agent-connman.c b/src/agent-connman.c index 177cbe0a..e4850a8f 100755 --- a/src/agent-connman.c +++ b/src/agent-connman.c @@ -100,73 +100,101 @@ static void request_input_passphrase_reply(DBusMessage *reply, void *user_data) DBusMessageIter entry, value; dbus_message_iter_recurse(&dict, &entry); - if (dbus_message_iter_get_arg_type(&entry) != DBUS_TYPE_STRING) + if (dbus_message_iter_get_arg_type(&entry) != DBUS_TYPE_STRING) { + error = CONNMAN_ERROR_INTERFACE ".InvalidArguments"; break; + } dbus_message_iter_get_basic(&entry, &key); if (g_str_equal(key, "Identity")) { dbus_message_iter_next(&entry); if (dbus_message_iter_get_arg_type(&entry) - != DBUS_TYPE_VARIANT) + != DBUS_TYPE_VARIANT) { + error = CONNMAN_ERROR_INTERFACE ".InvalidArguments"; break; + } + dbus_message_iter_recurse(&entry, &value); + if (dbus_message_iter_get_arg_type(&value) != DBUS_TYPE_STRING) { + error = CONNMAN_ERROR_INTERFACE ".InvalidArguments"; + break; + } + dbus_message_iter_get_basic(&value, &identity); } else if (g_str_equal(key, "Passphrase")) { dbus_message_iter_next(&entry); if (dbus_message_iter_get_arg_type(&entry) - != DBUS_TYPE_VARIANT) + != DBUS_TYPE_VARIANT) { + error = CONNMAN_ERROR_INTERFACE ".InvalidArguments"; break; + } + dbus_message_iter_recurse(&entry, &value); + if (dbus_message_iter_get_arg_type(&value) != DBUS_TYPE_STRING) { + error = CONNMAN_ERROR_INTERFACE ".InvalidArguments"; + break; + } + dbus_message_iter_get_basic(&value, &passphrase); } else if (g_str_equal(key, "WPS")) { - wps = true; dbus_message_iter_next(&entry); if (dbus_message_iter_get_arg_type(&entry) - != DBUS_TYPE_VARIANT) + != DBUS_TYPE_VARIANT) { + error = CONNMAN_ERROR_INTERFACE ".InvalidArguments"; break; + } + dbus_message_iter_recurse(&entry, &value); + if (dbus_message_iter_get_arg_type(&value) != DBUS_TYPE_STRING) { + error = CONNMAN_ERROR_INTERFACE ".InvalidArguments"; + break; + } + + wps = true; dbus_message_iter_get_basic(&value, &wpspin); break; } else if (g_str_equal(key, "Name")) { dbus_message_iter_next(&entry); if (dbus_message_iter_get_arg_type(&entry) - != DBUS_TYPE_VARIANT) + != DBUS_TYPE_VARIANT) { + error = CONNMAN_ERROR_INTERFACE ".InvalidArguments"; break; + } + dbus_message_iter_recurse(&entry, &value); + if (dbus_message_iter_get_arg_type(&value) != DBUS_TYPE_STRING) { + error = CONNMAN_ERROR_INTERFACE ".InvalidArguments"; + break; + } + dbus_message_iter_get_basic(&value, &name); name_len = strlen(name); } else if (g_str_equal(key, "SSID")) { -#if defined TIZEN_EXT - DBusMessageIter array; -#endif + DBusMessageIter array_iter; + dbus_message_iter_next(&entry); if (dbus_message_iter_get_arg_type(&entry) - != DBUS_TYPE_VARIANT) - break; -#if defined TIZEN_EXT - dbus_message_iter_recurse(&entry, &array); - if (dbus_message_iter_get_arg_type(&array) - != DBUS_TYPE_ARRAY) - break; - dbus_message_iter_recurse(&array, &value); - if (dbus_message_iter_get_arg_type(&value) - != DBUS_TYPE_BYTE) + != DBUS_TYPE_VARIANT) { + error = CONNMAN_ERROR_INTERFACE ".InvalidArguments"; break; -#else - + } dbus_message_iter_recurse(&entry, &value); if (dbus_message_iter_get_arg_type(&value) - != DBUS_TYPE_VARIANT) + != DBUS_TYPE_ARRAY) { + error = CONNMAN_ERROR_INTERFACE ".InvalidArguments"; break; - if (dbus_message_iter_get_element_type(&value) - != DBUS_TYPE_VARIANT) + } + dbus_message_iter_recurse(&value, &array_iter); + if (dbus_message_iter_get_arg_type(&array_iter) + != DBUS_TYPE_BYTE) { + error = CONNMAN_ERROR_INTERFACE ".InvalidArguments"; break; -#endif - dbus_message_iter_get_fixed_array(&value, &name, + } + dbus_message_iter_get_fixed_array(&array_iter, &name, &name_len); } dbus_message_iter_next(&dict); @@ -417,17 +445,33 @@ static void request_input_login_reply(DBusMessage *reply, void *user_data) if (g_str_equal(key, "Username")) { dbus_message_iter_next(&entry); if (dbus_message_iter_get_arg_type(&entry) - != DBUS_TYPE_VARIANT) + != DBUS_TYPE_VARIANT) { + error = CONNMAN_ERROR_INTERFACE ".InvalidArguments"; break; + } + dbus_message_iter_recurse(&entry, &value); + if (dbus_message_iter_get_arg_type(&value) != DBUS_TYPE_STRING) { + error = CONNMAN_ERROR_INTERFACE ".InvalidArguments"; + break; + } + dbus_message_iter_get_basic(&value, &username); } else if (g_str_equal(key, "Password")) { dbus_message_iter_next(&entry); if (dbus_message_iter_get_arg_type(&entry) != - DBUS_TYPE_VARIANT) + DBUS_TYPE_VARIANT) { + error = CONNMAN_ERROR_INTERFACE ".InvalidArguments"; break; + } + dbus_message_iter_recurse(&entry, &value); + if (dbus_message_iter_get_arg_type(&value) != DBUS_TYPE_STRING) { + error = CONNMAN_ERROR_INTERFACE ".InvalidArguments"; + break; + } + dbus_message_iter_get_basic(&value, &password); } @@ -723,8 +767,10 @@ static void request_peer_authorization_reply(DBusMessage *reply, DBusMessageIter entry, value; dbus_message_iter_recurse(&dict, &entry); - if (dbus_message_iter_get_arg_type(&entry) != DBUS_TYPE_STRING) + if (dbus_message_iter_get_arg_type(&entry) != DBUS_TYPE_STRING) { + error = CONNMAN_ERROR_INTERFACE ".InvalidArguments"; break; + } dbus_message_iter_get_basic(&entry, &key); @@ -733,9 +779,17 @@ static void request_peer_authorization_reply(DBusMessage *reply, dbus_message_iter_next(&entry); if (dbus_message_iter_get_arg_type(&entry) - != DBUS_TYPE_VARIANT) + != DBUS_TYPE_VARIANT) { + error = CONNMAN_ERROR_INTERFACE ".InvalidArguments"; break; + } + dbus_message_iter_recurse(&entry, &value); + if (dbus_message_iter_get_arg_type(&value) != DBUS_TYPE_STRING) { + error = CONNMAN_ERROR_INTERFACE ".InvalidArguments"; + break; + } + dbus_message_iter_get_basic(&value, &wpspin); break; } diff --git a/src/agent.c b/src/agent.c index bdeb0e71..8f7b19ba 100755 --- a/src/agent.c +++ b/src/agent.c @@ -165,12 +165,17 @@ static int send_cancel_request(struct connman_agent *agent, struct connman_agent_request *request) { DBusMessage *message; + const char *interface = NULL; - DBG("send cancel req to %s %s", agent->owner, agent->path); + if (request && request->driver) + interface = request->driver->interface; + + DBG("send cancel req to %s %s iface %s", agent->owner, agent->path, + interface); message = dbus_message_new_method_call(agent->owner, agent->path, - request->driver->interface, + interface, "Cancel"); if (!message) { connman_error("Couldn't allocate D-Bus message"); @@ -519,12 +524,12 @@ void connman_agent_cancel(void *user_context) user_context) { DBG("cancel pending %p", request); + agent->queue = g_list_delete_link(agent->queue, + list); + request->callback(NULL, request->user_data); agent_request_free(request); - - agent->queue = g_list_delete_link(agent->queue, - list); } list = next; @@ -581,7 +586,7 @@ static void agent_release(struct connman_agent *agent, const char *interface) message = dbus_message_new_method_call(agent->owner, agent->path, interface, "Release"); - if (message == NULL) { + if (!message) { connman_error("Couldn't allocate D-Bus message"); return; } diff --git a/src/bridge.c b/src/bridge.c index ba200969..cd2d9cee 100755 --- a/src/bridge.c +++ b/src/bridge.c @@ -56,7 +56,7 @@ static int set_forward_delay(const char *name, unsigned int delay) if (!f) return -errno; - fprintf(f, "%d", delay); + fprintf(f, "%u", delay); fclose(f); diff --git a/src/config.c b/src/config.c index 25dd1748..75cd717f 100755 --- a/src/config.c +++ b/src/config.c @@ -45,7 +45,12 @@ struct connman_config_service { unsigned int ssid_len; char *eap; char *identity; + char *anonymous_identity; char *ca_cert_file; + char *subject_match; + char *altsubject_match; + char *domain_suffix_match; + char *domain_match; char *client_cert_file; char *private_key_file; char *private_key_passphrase; @@ -98,6 +103,11 @@ static bool cleanup = false; #define SERVICE_KEY_PRV_KEY_PASS "PrivateKeyPassphrase" #define SERVICE_KEY_PRV_KEY_PASS_TYPE "PrivateKeyPassphraseType" #define SERVICE_KEY_IDENTITY "Identity" +#define SERVICE_KEY_ANONYMOUS_IDENTITY "AnonymousIdentity" +#define SERVICE_KEY_SUBJECT_MATCH "SubjectMatch" +#define SERVICE_KEY_ALT_SUBJECT_MATCH "AltSubjectMatch" +#define SERVICE_KEY_DOMAIN_SUFF_MATCH "DomainSuffixMatch" +#define SERVICE_KEY_DOMAIN_MATCH "DomainMatch" #define SERVICE_KEY_PHASE2 "Phase2" #define SERVICE_KEY_PASSPHRASE "Passphrase" #define SERVICE_KEY_SECURITY "Security" @@ -129,6 +139,11 @@ static const char *service_possible_keys[] = { SERVICE_KEY_PRV_KEY_PASS, SERVICE_KEY_PRV_KEY_PASS_TYPE, SERVICE_KEY_IDENTITY, + SERVICE_KEY_ANONYMOUS_IDENTITY, + SERVICE_KEY_SUBJECT_MATCH, + SERVICE_KEY_ALT_SUBJECT_MATCH, + SERVICE_KEY_DOMAIN_SUFF_MATCH, + SERVICE_KEY_DOMAIN_MATCH, SERVICE_KEY_PHASE2, SERVICE_KEY_PASSPHRASE, SERVICE_KEY_SECURITY, @@ -220,7 +235,12 @@ free_only: g_free(config_service->ssid); g_free(config_service->eap); g_free(config_service->identity); + g_free(config_service->anonymous_identity); g_free(config_service->ca_cert_file); + g_free(config_service->subject_match); + g_free(config_service->altsubject_match); + g_free(config_service->domain_suffix_match); + g_free(config_service->domain_match); g_free(config_service->client_cert_file); g_free(config_service->private_key_file); g_free(config_service->private_key_passphrase); @@ -655,6 +675,41 @@ static bool load_service(GKeyFile *keyfile, const char *group, service->identity = str; } + str = __connman_config_get_string(keyfile, group, + SERVICE_KEY_ANONYMOUS_IDENTITY, NULL); + if (str) { + g_free(service->anonymous_identity); + service->anonymous_identity = str; + } + + str = __connman_config_get_string(keyfile, group, + SERVICE_KEY_SUBJECT_MATCH, NULL); + if (str) { + g_free(service->subject_match); + service->subject_match = str; + } + + str = __connman_config_get_string(keyfile, group, + SERVICE_KEY_ALT_SUBJECT_MATCH, NULL); + if (str) { + g_free(service->altsubject_match); + service->altsubject_match = str; + } + + str = __connman_config_get_string(keyfile, group, + SERVICE_KEY_DOMAIN_SUFF_MATCH, NULL); + if (str) { + g_free(service->domain_suffix_match); + service->domain_suffix_match = str; + } + + str = __connman_config_get_string(keyfile, group, + SERVICE_KEY_DOMAIN_MATCH, NULL); + if (str) { + g_free(service->domain_match); + service->domain_match = str; + } + str = __connman_config_get_string(keyfile, group, SERVICE_KEY_PHASE2, NULL); if (str) { g_free(service->phase2); @@ -701,7 +756,18 @@ static bool load_service(GKeyFile *keyfile, const char *group, } else service->security = CONNMAN_SERVICE_SECURITY_PSK; - } + } else if (str) { + + if (security != CONNMAN_SERVICE_SECURITY_NONE) { + connman_info("Mismatch no security and " + "setting %s = %s", + SERVICE_KEY_SECURITY, str); + } + service->security = CONNMAN_SERVICE_SECURITY_NONE; + } else + service->security = CONNMAN_SERVICE_SECURITY_NONE; + + g_free(str); service->config_ident = g_strdup(config->ident); service->config_entry = g_strdup_printf("service_%s", service->ident); @@ -894,10 +960,10 @@ static void config_notify_handler(struct inotify_event *event, return; } - if (event->mask & IN_CREATE || event->mask & IN_MOVED_TO) + if (event->mask & (IN_CREATE | IN_MOVED_TO)) create_config(ident); - if (event->mask & IN_MODIFY) { + if (event->mask & (IN_MODIFY | IN_MOVED_TO)) { struct connman_config *config; config = g_hash_table_lookup(config_table, ident); @@ -919,7 +985,7 @@ static void config_notify_handler(struct inotify_event *event, } } - if (event->mask & IN_DELETE) + if (event->mask & (IN_DELETE | IN_MOVED_FROM)) g_hash_table_remove(config_table, ident); } @@ -956,6 +1022,11 @@ char *__connman_config_get_string(GKeyFile *key_file, if (!str) return NULL; + /* passphrases can have spaces in the end */ + if (!g_strcmp0(key, SERVICE_KEY_PASSPHRASE) || + !g_strcmp0(key, SERVICE_KEY_PRV_KEY_PASS)) + return str; + return g_strchomp(str); } @@ -1028,10 +1099,30 @@ static void provision_service_wifi(struct connman_config_service *config, __connman_service_set_string(service, "Identity", config->identity); + if (config->anonymous_identity) + __connman_service_set_string(service, "AnonymousIdentity", + config->anonymous_identity); + if (config->ca_cert_file) __connman_service_set_string(service, "CACertFile", config->ca_cert_file); + if (config->subject_match) + __connman_service_set_string(service, "SubjectMatch", + config->subject_match); + + if (config->altsubject_match) + __connman_service_set_string(service, "AltSubjectMatch", + config->altsubject_match); + + if (config->domain_suffix_match) + __connman_service_set_string(service, "DomainSuffixMatch", + config->domain_suffix_match); + + if (config->domain_match) + __connman_service_set_string(service, "DomainMatch", + config->domain_match); + if (config->client_cert_file) __connman_service_set_string(service, "ClientCertFile", config->client_cert_file); @@ -1333,7 +1424,7 @@ static int try_provision_service(struct connman_config_service *config, virtual->service = service; virtual->vfile = config->virtual_file; - g_timeout_add(0, remove_virtual_config, virtual); + g_idle_add(remove_virtual_config, virtual); return 0; } @@ -1353,22 +1444,35 @@ static int try_provision_service(struct connman_config_service *config, return 0; } +static int +find_and_provision_service_from_config(struct connman_service *service, + struct connman_config *config) +{ + GHashTableIter iter; + gpointer value, key; + + g_hash_table_iter_init(&iter, config->service_table); + while (g_hash_table_iter_next(&iter, &key, + &value)) { + if (!try_provision_service(value, service)) + return 0; + } + + return -ENOENT; +} + static int find_and_provision_service(struct connman_service *service) { - GHashTableIter iter, iter_service; - gpointer value, key, value_service, key_service; + GHashTableIter iter; + gpointer value, key; g_hash_table_iter_init(&iter, config_table); while (g_hash_table_iter_next(&iter, &key, &value)) { struct connman_config *config = value; - g_hash_table_iter_init(&iter_service, config->service_table); - while (g_hash_table_iter_next(&iter_service, &key_service, - &value_service)) { - if (!try_provision_service(value_service, service)) - return 0; - } + if (!find_and_provision_service_from_config(service, config)) + return 0; } return -ENOENT; @@ -1459,7 +1563,7 @@ int __connman_config_provision_service_ident(struct connman_service *service, } } - find_and_provision_service(service); + find_and_provision_service_from_config(service, config); } return ret; @@ -1489,7 +1593,7 @@ int connman_config_provision_mutable_service(GKeyFile *keyfile) { struct connman_config_service *service_config; struct connman_config *config; - char *vfile, *group; + char *vfile, *group = NULL; char rstr[11]; DBG(""); @@ -1525,13 +1629,14 @@ int connman_config_provision_mutable_service(GKeyFile *keyfile) if (g_strcmp0(service_config->type, "wifi") == 0) __connman_device_request_scan(CONNMAN_SERVICE_TYPE_WIFI); + g_free(group); return 0; error: DBG("Could not proceed"); g_hash_table_remove(config_table, vfile); g_free(vfile); - + g_free(group); return -EINVAL; } @@ -1545,13 +1650,16 @@ struct connman_config_entry **connman_config_get_entries(const char *type) g_hash_table_iter_init(&iter_file, config_table); while (g_hash_table_iter_next(&iter_file, &key, &value)) { struct connman_config *config_file = value; + struct connman_config_entry **tmp_entries = entries; count = g_hash_table_size(config_file->service_table); entries = g_try_realloc(entries, (i + count + 1) * sizeof(struct connman_config_entry *)); - if (!entries) + if (!entries) { + g_free(tmp_entries); return NULL; + } g_hash_table_iter_init(&iter_config, config_file->service_table); @@ -1584,10 +1692,14 @@ struct connman_config_entry **connman_config_get_entries(const char *type) } if (entries) { + struct connman_config_entry **tmp_entries = entries; + entries = g_try_realloc(entries, (i + 1) * sizeof(struct connman_config_entry *)); - if (!entries) + if (!entries) { + g_free(tmp_entries); return NULL; + } entries[i] = NULL; diff --git a/src/connection.c b/src/connection.c index 4389d587..64d48b7d 100755 --- a/src/connection.c +++ b/src/connection.c @@ -46,7 +46,6 @@ struct gateway_config { struct gateway_data { int index; struct connman_service *service; - unsigned int order; struct gateway_config *ipv4_gateway; struct gateway_config *ipv6_gateway; bool default_checked; @@ -381,8 +380,6 @@ static struct gateway_data *add_gateway(struct connman_service *service, data->service = service; - data->order = __connman_service_get_order(service); - /* * If the service is already in the hash, then we * must not replace it blindly but disable the gateway @@ -558,25 +555,13 @@ static void unset_default_gateway(struct gateway_data *data, static struct gateway_data *find_default_gateway(void) { - struct gateway_data *found = NULL; - unsigned int order = 0; - GHashTableIter iter; - gpointer value, key; - - g_hash_table_iter_init(&iter, gateway_hash); - - while (g_hash_table_iter_next(&iter, &key, &value)) { - struct gateway_data *data = value; - - if (!found || data->order > order) { - found = data; - order = data->order; + struct connman_service *service; - DBG("default %p order %d", found, order); - } - } + service = __connman_service_get_default(); + if (!service) + return NULL; - return found; + return g_hash_table_lookup(gateway_hash, service); } static bool choose_default_gateway(struct gateway_data *data, @@ -589,37 +574,35 @@ static bool choose_default_gateway(struct gateway_data *data, * this one as default. If the other one is already active * we mark this one as non default. */ - if (data->ipv4_gateway) { - if (candidate->ipv4_gateway && - !candidate->ipv4_gateway->active) { + if (data->ipv4_gateway && candidate->ipv4_gateway) { + + if (!candidate->ipv4_gateway->active) { DBG("ipv4 downgrading %p", candidate); unset_default_gateway(candidate, CONNMAN_IPCONFIG_TYPE_IPV4); } - if (candidate->ipv4_gateway && - candidate->ipv4_gateway->active && - candidate->order > data->order) { + + if (candidate->ipv4_gateway->active && + __connman_service_compare(candidate->service, + data->service) < 0) { DBG("ipv4 downgrading this %p", data); - unset_default_gateway(data, - CONNMAN_IPCONFIG_TYPE_IPV4); + unset_default_gateway(data, CONNMAN_IPCONFIG_TYPE_IPV4); downgraded = true; } } - if (data->ipv6_gateway) { - if (candidate->ipv6_gateway && - !candidate->ipv6_gateway->active) { + if (data->ipv6_gateway && candidate->ipv6_gateway) { + if (!candidate->ipv6_gateway->active) { DBG("ipv6 downgrading %p", candidate); unset_default_gateway(candidate, CONNMAN_IPCONFIG_TYPE_IPV6); } - if (candidate->ipv6_gateway && - candidate->ipv6_gateway->active && - candidate->order > data->order) { + if (candidate->ipv6_gateway->active && + __connman_service_compare(candidate->service, + data->service) < 0) { DBG("ipv6 downgrading this %p", data); - unset_default_gateway(data, - CONNMAN_IPCONFIG_TYPE_IPV6); + unset_default_gateway(data, CONNMAN_IPCONFIG_TYPE_IPV6); downgraded = true; } } @@ -762,40 +745,6 @@ static struct gateway_data *find_active_gateway(void) return NULL; } -static void update_order(void) -{ - GHashTableIter iter; - gpointer value, key; - - DBG(""); - - g_hash_table_iter_init(&iter, gateway_hash); - - while (g_hash_table_iter_next(&iter, &key, &value)) { - struct gateway_data *data = value; - - data->order = __connman_service_get_order(data->service); - } -} - -void __connman_connection_gateway_activate(struct connman_service *service, - enum connman_ipconfig_type type) -{ - struct gateway_data *data = NULL; - - data = g_hash_table_lookup(gateway_hash, service); - if (!data) - return; - - DBG("gateway %p/%p type %d", data->ipv4_gateway, - data->ipv6_gateway, type); - - if (type == CONNMAN_IPCONFIG_TYPE_IPV4) - data->ipv4_gateway->active = true; - else if (type == CONNMAN_IPCONFIG_TYPE_IPV6) - data->ipv6_gateway->active = true; -} - static void add_host_route(int family, int index, const char *gateway, enum connman_service_type service_type) { @@ -1090,12 +1039,8 @@ bool __connman_connection_update_gateway(void) if (!gateway_hash) return updated; - update_order(); - default_gateway = find_default_gateway(); - __connman_service_update_ordering(); - DBG("default %p", default_gateway); /* diff --git a/src/connman.h b/src/connman.h index 57cfc872..4125463b 100755 --- a/src/connman.h +++ b/src/connman.h @@ -244,10 +244,14 @@ int __connman_inet_del_default_from_table(uint32_t table_id, int ifindex, const int __connman_inet_get_address_netmask(int ifindex, struct sockaddr_in *address, struct sockaddr_in *netmask); +bool __connman_inet_isrootnfs_device(const char *devname); +char **__connman_inet_get_pnp_nameservers(const char *pnp_file); + #include <connman/resolver.h> int __connman_resolver_init(gboolean dnsproxy); void __connman_resolver_cleanup(void); +void __connman_resolver_append_fallback_nameservers(void); int __connman_resolvfile_append(int index, const char *domain, const char *server); int __connman_resolvfile_remove(int index, const char *domain, const char *server); int __connman_resolver_redo_servers(int index); @@ -511,8 +515,6 @@ void __connman_connection_gateway_remove(struct connman_service *service, int __connman_connection_get_vpn_index(int phy_index); bool __connman_connection_update_gateway(void); -void __connman_connection_gateway_activate(struct connman_service *service, - enum connman_ipconfig_type type); int __connman_ntp_start(char *server); void __connman_ntp_stop(); @@ -648,7 +650,7 @@ int __connman_tethering_init(void); void __connman_tethering_cleanup(void); const char *__connman_tethering_get_bridge(void); -void __connman_tethering_set_enabled(void); +int __connman_tethering_set_enabled(void); void __connman_tethering_set_disabled(void); int __connman_private_network_request(DBusMessage *msg, const char *owner); @@ -671,7 +673,8 @@ int __connman_provider_indicate_state(struct connman_provider *provider, enum connman_provider_state state); int __connman_provider_indicate_error(struct connman_provider *provider, enum connman_provider_error error); -int __connman_provider_connect(struct connman_provider *provider); +int __connman_provider_connect(struct connman_provider *provider, + const char *dbus_sender); int __connman_provider_remove_by_path(const char *path); void __connman_provider_cleanup(void); int __connman_provider_init(void); @@ -693,6 +696,9 @@ enum connman_dnsconfig_method { }; #endif +int __connman_service_compare(const struct connman_service *a, + const struct connman_service *b); + struct connman_service *__connman_service_lookup_from_index(int index); struct connman_service *__connman_service_lookup_from_ident(const char *identifier); struct connman_service *__connman_service_create_from_network(struct connman_network *network); @@ -710,6 +716,8 @@ struct connman_ipconfig *__connman_service_get_ip6config( struct connman_service *service); struct connman_ipconfig *__connman_service_get_ipconfig( struct connman_service *service, int family); +void __connman_service_notify_ipv4_configuration( + struct connman_service *service); bool __connman_service_is_connected_state(struct connman_service *service, enum connman_ipconfig_type type); const char *__connman_service_get_ident(struct connman_service *service); @@ -717,7 +725,6 @@ const char *__connman_service_get_path(struct connman_service *service); const char *__connman_service_get_name(struct connman_service *service); unsigned int __connman_service_get_order(struct connman_service *service); enum connman_service_state __connman_service_get_state(struct connman_service *service); -void __connman_service_update_ordering(void); struct connman_network *__connman_service_get_network(struct connman_service *service); enum connman_service_security __connman_service_get_security(struct connman_service *service); const char *__connman_service_get_phase2(struct connman_service *service); @@ -842,11 +849,23 @@ void __connman_service_set_proxy_autoconfig(struct connman_service *service, void __connman_service_set_identity(struct connman_service *service, const char *identity); +void __connman_service_set_anonymous_identity(struct connman_service *service, + const char *anonymous_identity); +void __connman_service_set_subject_match(struct connman_service *service, + const char *subject_match); +void __connman_service_set_altsubject_match(struct connman_service *service, + const char *altsubject_match); +void __connman_service_set_domain_suffix_match(struct connman_service *service, + const char *domain_suffix_match); +void __connman_service_set_domain_match(struct connman_service *service, + const char *domain_match); void __connman_service_set_agent_identity(struct connman_service *service, const char *agent_identity); int __connman_service_set_passphrase(struct connman_service *service, const char *passphrase); const char *__connman_service_get_passphrase(struct connman_service *service); +int __connman_service_check_passphrase(enum connman_service_security security, + const char *passphrase); int __connman_service_reset_ipconfig(struct connman_service *service, enum connman_ipconfig_type type, DBusMessageIter *array, enum connman_service_state *new_state); @@ -939,6 +958,11 @@ unsigned int __connman_rtnl_update_interval_remove(unsigned int interval); int __connman_rtnl_request_update(void); int __connman_rtnl_send(const void *buf, size_t len); +#if defined TIZEN_EXT +void rtnl_nameserver_add_all(struct connman_service *service, + enum connman_ipconfig_type type); +#endif + bool __connman_session_policy_autoconnect(enum connman_service_connect_reason reason); int __connman_session_create(DBusMessage *msg); @@ -1063,13 +1087,19 @@ struct firewall_context; struct firewall_context *__connman_firewall_create(void); void __connman_firewall_destroy(struct firewall_context *ctx); -int __connman_firewall_add_rule(struct firewall_context *ctx, - const char *table, - const char *chain, - const char *rule_fmt, ...); -int __connman_firewall_enable(struct firewall_context *ctx); -int __connman_firewall_disable(struct firewall_context *ctx); -bool __connman_firewall_is_up(void); +int __connman_firewall_enable_nat(struct firewall_context *ctx, + char *address, unsigned char prefixlen, + char *interface); +int __connman_firewall_disable_nat(struct firewall_context *ctx); +int __connman_firewall_enable_snat(struct firewall_context *ctx, + int index, const char *ifname, + const char *addr); +int __connman_firewall_disable_snat(struct firewall_context *ctx); +int __connman_firewall_enable_marking(struct firewall_context *ctx, + enum connman_session_id_type id_type, + char *id, const char *src_ip, + uint32_t mark); +int __connman_firewall_disable_marking(struct firewall_context *ctx); int __connman_firewall_init(void); void __connman_firewall_cleanup(void); diff --git a/src/connmand-wait-online.c b/src/connmand-wait-online.c new file mode 100644 index 00000000..2711d56f --- /dev/null +++ b/src/connmand-wait-online.c @@ -0,0 +1,461 @@ +/* + * + * Connection Manager + * + * Copyright (C) 2015 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 <string.h> +#include <glib.h> +#include <errno.h> +#include <stdbool.h> +#include <dbus/dbus.h> + +#include <gdbus.h> +#include <connman/dbus.h> + +static DBusConnection *connection; +static GMainLoop *main_loop; +static int timeout = 0; +static int exit_value = 0; + +static gboolean option_version = FALSE; +static gchar *option_interface = NULL; +static gchar *option_ignore = NULL; +static gint option_timeout = 120; + +struct devices { + char **interface; + char **ignore; +}; + +static GOptionEntry options[] = { + { "interface", 'i', 0, G_OPTION_ARG_STRING, &option_interface, + "Specify networking device or interface", "DEV" }, + { "ignore", 'I', 0, G_OPTION_ARG_STRING, &option_ignore, + "Specify networking device or interface to ignore", "DEV" }, + { "timeout", 0, 0, G_OPTION_ARG_INT, &option_timeout, + "Time to wait for network going online. Default is 120 seconds.", + "seconds" }, + { "version", 'v', 0, G_OPTION_ARG_NONE, &option_version, + "Show version information and exit" }, + { NULL }, +}; + +static bool compare_interface(const char *interface, struct devices *devices) +{ + int i; + + if (!interface || !devices) + return false; + + for (i = 0; devices->ignore && devices->ignore[i]; i++) + if (!strcmp(interface, devices->ignore[i])) + return false; + + if (!devices->interface) + return true; + + for (i = 0; devices->interface[i]; i++) + if (!strcmp(interface, devices->interface[i])) + return true; + + return false; +} + +static bool state_online(DBusMessageIter *iter) +{ + char *str; + DBusMessageIter variant; + + if (dbus_message_iter_get_arg_type(iter) != DBUS_TYPE_STRING) + return false; + + dbus_message_iter_get_basic(iter, &str); + if (strcmp(str, "State")) + return false; + + dbus_message_iter_next(iter); + + if (dbus_message_iter_get_arg_type(iter) != DBUS_TYPE_VARIANT) + return false; + + dbus_message_iter_recurse(iter, &variant); + + if (dbus_message_iter_get_arg_type(&variant) != DBUS_TYPE_STRING) + return false; + + dbus_message_iter_get_basic(&variant, &str); + if (strcmp(str, "ready") && strcmp(str, "online")) + return false; + + return true; +} + +static bool service_properties_online(DBusMessageIter *array_entry, + struct devices *devices) +{ + bool interface = !devices; + bool state = false; + DBusMessageIter dict, dict_entry, variant, eth_array, eth_dict, + eth_variant; + char *str; + + for (dbus_message_iter_recurse(array_entry, &dict); + dbus_message_iter_get_arg_type(&dict) == DBUS_TYPE_DICT_ENTRY; + dbus_message_iter_next(&dict)) { + + dbus_message_iter_recurse(&dict, &dict_entry); + if (dbus_message_iter_get_arg_type(&dict_entry) + != DBUS_TYPE_STRING) + continue; + + if (state_online(&dict_entry)) { + state = true; + continue; + } + + dbus_message_iter_recurse(&dict, &dict_entry); + + dbus_message_iter_get_basic(&dict_entry, &str); + + if (devices && !strcmp(str, "Ethernet")) { + dbus_message_iter_next(&dict_entry); + + if (dbus_message_iter_get_arg_type(&dict_entry) + != DBUS_TYPE_VARIANT) + break; + + dbus_message_iter_recurse(&dict_entry, &variant); + if (dbus_message_iter_get_arg_type(&variant) + != DBUS_TYPE_ARRAY) + break; + + for (dbus_message_iter_recurse(&variant, ð_array); + dbus_message_iter_get_arg_type(ð_array) + == DBUS_TYPE_DICT_ENTRY; + dbus_message_iter_next(ð_array)) { + + dbus_message_iter_recurse(ð_array, ð_dict); + + if (dbus_message_iter_get_arg_type(ð_dict) + != DBUS_TYPE_STRING) + continue; + + dbus_message_iter_get_basic(ð_dict, &str); + if (!strcmp(str, "Interface")) { + + dbus_message_iter_next(ð_dict); + if (dbus_message_iter_get_arg_type(ð_dict) + != DBUS_TYPE_VARIANT) + break; + + dbus_message_iter_recurse(ð_dict, + ð_variant); + if (dbus_message_iter_get_arg_type(ð_variant) + != DBUS_TYPE_STRING) + break; + + dbus_message_iter_get_basic(ð_variant, + &str); + interface = compare_interface(str, + devices); + + break; + } + } + } + + if (state && interface) { + g_main_loop_quit(main_loop); + return true; + } + } + + return false; +} + +static void services_dict_online(DBusMessageIter *iter, struct devices *devices) +{ + DBusMessageIter array, array_entry; + + if (dbus_message_iter_get_arg_type(iter) != DBUS_TYPE_ARRAY) + return; + + for (dbus_message_iter_recurse(iter, &array); + dbus_message_iter_get_arg_type(&array) == DBUS_TYPE_STRUCT; + dbus_message_iter_next(&array)) { + + dbus_message_iter_recurse(&array, &array_entry); + + if (dbus_message_iter_get_arg_type(&array_entry) != + DBUS_TYPE_OBJECT_PATH) + break; + + dbus_message_iter_next(&array_entry); + + if (dbus_message_iter_get_arg_type(&array_entry) != + DBUS_TYPE_ARRAY) + continue; + + if (service_properties_online(&array_entry, devices)) + break; + } +} + +static void manager_get_services_return(DBusPendingCall *call, + void *user_data) +{ + struct devices *devices = user_data; + DBusMessage *reply; + DBusMessageIter iter; + + reply = dbus_pending_call_steal_reply(call); + if (dbus_message_get_type(reply) == DBUS_MESSAGE_TYPE_ERROR) + goto fail; + + if (!dbus_message_iter_init(reply, &iter)) + goto fail; + + services_dict_online(&iter, devices); + +fail: + dbus_message_unref(reply); + dbus_pending_call_unref(call); +} + +static void manager_get_services(struct devices *devices) +{ + DBusMessage *message; + DBusPendingCall *call; + + message = dbus_message_new_method_call(CONNMAN_SERVICE, + CONNMAN_MANAGER_PATH, + CONNMAN_MANAGER_INTERFACE, + "GetServices"); + if (!message) + return; + + if (!dbus_connection_send_with_reply(connection, message, &call, -1)) + goto fail; + + if (!call) + goto fail; + + dbus_pending_call_set_notify(call, manager_get_services_return, + devices, NULL); + +fail: + dbus_message_unref(message); +} + +static void manager_properties_online(DBusMessageIter *iter, + struct devices *devices) +{ + DBusMessageIter array, dict_entry; + + if (dbus_message_iter_get_arg_type(iter) != DBUS_TYPE_ARRAY) + return; + + for (dbus_message_iter_recurse(iter, &array); + dbus_message_iter_get_arg_type(&array) == DBUS_TYPE_DICT_ENTRY; + dbus_message_iter_next(&array)) { + + dbus_message_iter_recurse(&array, &dict_entry); + + if (state_online(&dict_entry)) { + if (devices) + manager_get_services(devices); + else + g_main_loop_quit(main_loop); + + break; + } + } +} + +static void manager_get_properties_return(DBusPendingCall *call, void *user_data) +{ + struct devices *devices = user_data; + DBusMessage *reply; + DBusMessageIter iter; + + reply = dbus_pending_call_steal_reply(call); + if (dbus_message_get_type(reply) == DBUS_MESSAGE_TYPE_ERROR) + goto fail; + + if (!dbus_message_iter_init(reply, &iter)) + goto fail; + + manager_properties_online(&iter, devices); + +fail: + dbus_message_unref(reply); + dbus_pending_call_unref(call); +} + +static void manager_get_properties(struct devices *devices) +{ + DBusMessage *message; + DBusPendingCall *call; + + message = dbus_message_new_method_call(CONNMAN_SERVICE, + CONNMAN_MANAGER_PATH, + CONNMAN_MANAGER_INTERFACE, + "GetProperties"); + if (!message) + return; + + if (!dbus_connection_send_with_reply(connection, message, &call, -1)) + goto fail; + + if (!call) + goto fail; + + dbus_pending_call_set_notify(call, manager_get_properties_return, + devices, NULL); + +fail: + dbus_message_unref(message); +} + +static DBusHandlerResult manager_property_changed(DBusConnection *connection, + DBusMessage *message, void *user_data) +{ + struct devices *devices = user_data; + DBusMessageIter iter; + + if (dbus_message_is_signal(message, CONNMAN_MANAGER_INTERFACE, + "PropertyChanged")) { + dbus_message_iter_init(message, &iter); + + if (state_online(&iter)) { + if (devices) + manager_get_services(devices); + else + g_main_loop_quit(main_loop); + } + } + + return DBUS_HANDLER_RESULT_HANDLED; +} + +static gboolean timeout_triggered(gpointer user_data) +{ + exit_value = -ETIMEDOUT; + g_main_loop_quit(main_loop); + timeout = 0; + + return FALSE; +} + +int main(int argc, char *argv[]) +{ + const char *filter = "type='signal',interface='" + CONNMAN_MANAGER_INTERFACE "'"; + int err = 0; + GError *g_err = NULL; + struct devices devices = { NULL, NULL }; + DBusError dbus_err; + GOptionContext *context; + + context = g_option_context_new(NULL); + g_option_context_add_main_entries(context, options, NULL); + + if (!g_option_context_parse(context, &argc, &argv, &g_err)) { + if (g_err) { + fprintf(stderr, "%s\n", g_err->message); + g_error_free(g_err); + } else + fprintf(stderr, "An unknown error occurred\n"); + + return EOPNOTSUPP; + } + + g_option_context_free(context); + + if (option_interface) { + devices.interface = g_strsplit(option_interface, ",", -1); + g_free(option_interface); + } + + if (option_ignore) { + devices.ignore = g_strsplit(option_ignore, ",", -1); + g_free(option_ignore); + } + + if (option_version) { + fprintf(stdout, "%s\n", VERSION); + goto free; + } + + dbus_error_init(&dbus_err); + connection = g_dbus_setup_bus(DBUS_BUS_SYSTEM, NULL, &dbus_err); + + if (dbus_error_is_set(&dbus_err)) { + fprintf(stderr, "Error: %s\n", dbus_err.message); + + err = -ENOPROTOOPT; + goto fail; + } + + main_loop = g_main_loop_new(NULL, FALSE); + + dbus_connection_add_filter(connection, manager_property_changed, + &devices, NULL); + + dbus_bus_add_match(connection, filter, &dbus_err); + + if (dbus_error_is_set(&dbus_err)) { + fprintf(stderr, "Error: %s\n", dbus_err.message); + + err = -ENOPROTOOPT; + goto cleanup; + } + + if (option_timeout) + timeout = g_timeout_add_seconds(option_timeout, + timeout_triggered, NULL); + + manager_get_properties(&devices); + + g_main_loop_run(main_loop); + err = exit_value; + +cleanup: + dbus_bus_remove_match(connection, filter, NULL); + dbus_connection_remove_filter(connection, manager_property_changed, + &devices); + + dbus_connection_unref(connection); + g_main_loop_unref(main_loop); + +fail: + dbus_error_free(&dbus_err); +free: + g_strfreev(devices.interface); + g_strfreev(devices.ignore); + if (timeout) + g_source_remove(timeout); + + return -err; +} diff --git a/src/device.c b/src/device.c index b5855cc2..3ec8f715 100755 --- a/src/device.c +++ b/src/device.c @@ -53,7 +53,6 @@ struct connman_device { */ bool powered; bool scanning; - bool disconnected; char *name; char *node; char *address; @@ -385,6 +384,9 @@ static void device_destruct(struct connman_device *device) clear_pending_trigger(device); + g_hash_table_destroy(device->networks); + device->networks = NULL; + g_free(device->ident); g_free(device->node); g_free(device->name); @@ -394,9 +396,6 @@ static void device_destruct(struct connman_device *device) g_free(device->last_network); - g_hash_table_destroy(device->networks); - device->networks = NULL; - g_free(device); } @@ -568,7 +567,7 @@ int connman_device_set_powered(struct connman_device *device, { enum connman_service_type type; - DBG("driver %p powered %d", device, powered); + DBG("device %p powered %d", device, powered); if (device->powered == powered) return -EALREADY; @@ -588,7 +587,6 @@ int connman_device_set_powered(struct connman_device *device, __connman_technology_enabled(type); - connman_device_set_disconnected(device, false); device->scanning = false; if (device->driver && device->driver->scan) @@ -623,8 +621,6 @@ int __connman_device_disconnect(struct connman_device *device) DBG("device %p", device); - connman_device_set_disconnected(device, true); - g_hash_table_iter_init(&iter, device->networks); while (g_hash_table_iter_next(&iter, &key, &value)) { @@ -751,37 +747,6 @@ int connman_device_set_scanning(struct connman_device *device, } /** - * connman_device_set_disconnected: - * @device: device structure - * @disconnected: disconnected state - * - * Change disconnected state of device (only for device with networks) - */ -int connman_device_set_disconnected(struct connman_device *device, - bool disconnected) -{ - DBG("device %p disconnected %d", device, disconnected); - - if (device->disconnected == disconnected) - return -EALREADY; - - device->disconnected = disconnected; - - return 0; -} - -/** - * connman_device_get_disconnected: - * @device: device structure - * - * Get device disconnected state - */ -bool connman_device_get_disconnected(struct connman_device *device) -{ - return device->disconnected; -} - -/** * connman_device_set_string: * @device: device structure * @key: unique identifier @@ -1435,6 +1400,11 @@ nodevice: } list: + if (__connman_inet_isrootnfs_device(devname)) { + DBG("ignoring device %s (rootnfs)", devname); + return true; + } + blacklisted_interfaces = connman_setting_get_string_list("NetworkInterfaceBlacklist"); if (!blacklisted_interfaces) @@ -26,6 +26,11 @@ #include <errno.h> #include <string.h> #include <stdlib.h> +#include <net/ethernet.h> + +#ifndef IPV6_MIN_MTU +#define IPV6_MIN_MTU 1280 +#endif #include <connman/ipconfig.h> #include <include/setting.h> @@ -54,10 +59,11 @@ struct connman_dhcp { GDHCPClient *dhcp_client; char *ipv4ll_debug_prefix; char *dhcp_debug_prefix; + + bool ipv4ll_running; }; static GHashTable *ipconfig_table; -static bool ipv4ll_running; static void dhcp_free(struct connman_dhcp *dhcp) { @@ -89,7 +95,7 @@ static void ipv4ll_stop_client(struct connman_dhcp *dhcp) g_dhcp_client_stop(dhcp->ipv4ll_client); g_dhcp_client_unref(dhcp->ipv4ll_client); dhcp->ipv4ll_client = NULL; - ipv4ll_running = false; + dhcp->ipv4ll_running = false; g_free(dhcp->ipv4ll_debug_prefix); dhcp->ipv4ll_debug_prefix = NULL; @@ -117,18 +123,22 @@ static bool apply_dhcp_invalidate_on_network(struct connman_dhcp *dhcp) __connman_service_timeserver_remove(service, dhcp->timeservers[i]); } + g_strfreev(dhcp->timeservers); + dhcp->timeservers = NULL; } if (dhcp->nameservers) { for (i = 0; dhcp->nameservers[i]; i++) { #if defined TIZEN_EXT __connman_service_nameserver_remove(service, - dhcp->nameservers[i], false, - CONNMAN_IPCONFIG_TYPE_IPV4); + dhcp->nameservers[i], false, + CONNMAN_IPCONFIG_TYPE_IPV4); #else __connman_service_nameserver_remove(service, - dhcp->nameservers[i], false); + dhcp->nameservers[i], false); #endif } + g_strfreev(dhcp->nameservers); + dhcp->nameservers = NULL; } return true; @@ -246,7 +256,7 @@ static int ipv4ll_start_client(struct connman_dhcp *dhcp) return err; } - ipv4ll_running = true; + dhcp->ipv4ll_running = true; return 0; } @@ -270,16 +280,16 @@ static void no_lease_cb(GDHCPClient *dhcp_client, gpointer user_data) struct connman_dhcp *dhcp = user_data; int err; - DBG("No lease available ipv4ll %d client %p", ipv4ll_running, + DBG("No lease available ipv4ll %d client %p", dhcp->ipv4ll_running, dhcp->ipv4ll_client); if (dhcp->timeout > 0) g_source_remove(dhcp->timeout); dhcp->timeout = g_timeout_add_seconds(RATE_LIMIT_INTERVAL, - dhcp_retry_cb, - dhcp); - if (ipv4ll_running) + dhcp_retry_cb, + dhcp); + if (dhcp->ipv4ll_running) return; err = ipv4ll_start_client(dhcp); @@ -287,7 +297,7 @@ static void no_lease_cb(GDHCPClient *dhcp_client, gpointer user_data) DBG("Cannot start ipv4ll client (%d/%s)", err, strerror(-err)); /* Only notify upper layer if we have a problem */ - dhcp_invalidate(dhcp, !ipv4ll_running); + dhcp_invalidate(dhcp, !dhcp->ipv4ll_running); } static void lease_lost_cb(GDHCPClient *dhcp_client, gpointer user_data) @@ -352,6 +362,20 @@ static bool apply_lease_available_on_network(GDHCPClient *dhcp_client, return false; } + option = g_dhcp_client_get_option(dhcp_client, G_DHCP_MTU); + if (option && option->data) { + int mtu, index, err; + + mtu = atoi(option->data); + + if (mtu >= IPV6_MIN_MTU && mtu <= ETH_DATA_LEN) { + index = __connman_ipconfig_get_index(dhcp->ipconfig); + err = connman_inet_set_mtu(index, mtu); + + DBG("MTU %d index %d err %d", mtu, index, err); + } + } + option = g_dhcp_client_get_option(dhcp_client, 252); if (option) pac = g_strdup(option->data); @@ -452,6 +476,7 @@ static void lease_available_cb(GDHCPClient *dhcp_client, gpointer user_data) { struct connman_dhcp *dhcp = user_data; GList *option = NULL; + enum connman_ipconfig_method old_method; char *address, *netmask = NULL, *gateway = NULL; const char *c_address, *c_gateway; unsigned char prefixlen, c_prefixlen; @@ -507,6 +532,7 @@ static void lease_available_cb(GDHCPClient *dhcp_client, gpointer user_data) } else if (prefixlen != c_prefixlen) ip_change = true; + old_method = __connman_ipconfig_get_method(dhcp->ipconfig); __connman_ipconfig_set_method(dhcp->ipconfig, CONNMAN_IPCONFIG_METHOD_DHCP); @@ -514,6 +540,20 @@ static void lease_available_cb(GDHCPClient *dhcp_client, gpointer user_data) __connman_ipconfig_set_dhcp_lease_duration(dhcp->ipconfig, dhcp_lease_duration); #endif + /* + * Notify IPv4.Configuration's method moved back to DHCP. + * + * This is the case ConnMan initially set an address by using + * IPv4LL because DHCP failed but now we got an address from DHCP. + */ + if (old_method == CONNMAN_IPCONFIG_METHOD_AUTO) { + struct connman_service *service = + connman_service_lookup_from_network(dhcp->network); + + if (service) + __connman_service_notify_ipv4_configuration(service); + } + if (ip_change) { __connman_ipconfig_set_local(dhcp->ipconfig, address); __connman_ipconfig_set_prefixlen(dhcp->ipconfig, prefixlen); @@ -535,8 +575,9 @@ done: static void ipv4ll_available_cb(GDHCPClient *ipv4ll_client, gpointer user_data) { struct connman_dhcp *dhcp = user_data; - char *address, *netmask; - unsigned char prefixlen; + enum connman_ipconfig_method old_method; + char *address, *netmask; + unsigned char prefixlen; DBG("IPV4LL available"); @@ -545,8 +586,25 @@ static void ipv4ll_available_cb(GDHCPClient *ipv4ll_client, gpointer user_data) prefixlen = connman_ipaddress_calc_netmask_len(netmask); + old_method = __connman_ipconfig_get_method(dhcp->ipconfig); __connman_ipconfig_set_method(dhcp->ipconfig, - CONNMAN_IPCONFIG_METHOD_DHCP); + CONNMAN_IPCONFIG_METHOD_AUTO); + + /* + * Notify IPv4.Configuration's method is AUTO now. + * + * This is the case DHCP failed thus ConnMan used IPv4LL to get an + * address. Set IPv4.Configuration method to AUTO allows user to + * ask for a DHCP address by setting the method again to DHCP. + */ + if (old_method == CONNMAN_IPCONFIG_METHOD_DHCP) { + struct connman_service *service = + connman_service_lookup_from_network(dhcp->network); + + if (service) + __connman_service_notify_ipv4_configuration(service); + } + __connman_ipconfig_set_local(dhcp->ipconfig, address); __connman_ipconfig_set_prefixlen(dhcp->ipconfig, prefixlen); __connman_ipconfig_set_gateway(dhcp->ipconfig, NULL); @@ -562,6 +620,7 @@ static int dhcp_initialize(struct connman_dhcp *dhcp) GDHCPClient *dhcp_client; GDHCPClientError error; int index; + const char *vendor_class_id; DBG("dhcp %p", dhcp); @@ -610,10 +669,16 @@ static int dhcp_initialize(struct connman_dhcp *dhcp) g_dhcp_client_set_request(dhcp_client, G_DHCP_DOMAIN_NAME); g_dhcp_client_set_request(dhcp_client, G_DHCP_NTP_SERVER); g_dhcp_client_set_request(dhcp_client, 252); + g_dhcp_client_set_request(dhcp_client, G_DHCP_MTU); } - g_dhcp_client_set_request(dhcp_client, G_DHCP_SUBNET); g_dhcp_client_set_request(dhcp_client, G_DHCP_ROUTER); + g_dhcp_client_set_request(dhcp_client, G_DHCP_SUBNET); + + vendor_class_id = connman_option_get_string("VendorClassID"); + if (vendor_class_id) + g_dhcp_client_set_send(dhcp_client, G_DHCP_VENDOR_CLASS_ID, + vendor_class_id); g_dhcp_client_register_event(dhcp_client, G_DHCP_CLIENT_EVENT_LEASE_AVAILABLE, diff --git a/src/dhcpv6.c b/src/dhcpv6.c index adf88273..c624cb00 100755 --- a/src/dhcpv6.c +++ b/src/dhcpv6.c @@ -105,20 +105,14 @@ static void clear_timer(struct connman_dhcpv6 *dhcp) } } -static inline guint get_random(void) +static guint compute_random(guint val) { - uint64_t val; - - __connman_util_get_random(&val); + uint64_t rand; - /* Make sure the value is always positive so strip MSB */ - return ((uint32_t)val) >> 1; -} + __connman_util_get_random(&rand); -static guint compute_random(guint val) -{ return val - val / 10 + - (get_random() % (2 * 1000)) * val / 10 / 1000; + ((guint) rand % (2 * 1000)) * val / 10 / 1000; } /* Calculate a random delay, RFC 3315 chapter 14 */ @@ -253,6 +247,7 @@ static int set_duid(struct connman_service *service, hex_duid = convert_to_hex(duid, duid_len); if (!hex_duid) { + g_free(duid); g_key_file_free(keyfile); return -ENOMEM; } @@ -481,7 +476,6 @@ static int check_ipv6_addr_prefix(GSList *prefixes, char *address) if (!slash) continue; - prefix = g_strndup(prefix, slash - prefix); len = strtol(slash + 1, NULL, 10); if (len < 3 || len > 128) break; @@ -492,6 +486,7 @@ static int check_ipv6_addr_prefix(GSList *prefixes, char *address) left = plen % 8; i = 16 - count; + prefix = g_strndup(prefix, slash - prefix); inet_pton(AF_INET6, prefix, &addr_prefix); inet_pton(AF_INET6, address, &addr); diff --git a/src/dnsproxy.c b/src/dnsproxy.c index 55ba69a6..3fa7bf46 100755 --- a/src/dnsproxy.c +++ b/src/dnsproxy.c @@ -46,6 +46,8 @@ #include <systemd/sd-daemon.h> #endif +#define debug(fmt...) do { } while (0) + #if __BYTE_ORDER == __LITTLE_ENDIAN struct domain_hdr { uint16_t id; @@ -301,7 +303,7 @@ static struct server_data *find_server(int index, { GSList *list; - DBG("index %d server %s proto %d", index, server, protocol); + debug("index %d server %s proto %d", index, server, protocol); for (list = server_list; list; list = list->next) { struct server_data *data = list->data; @@ -352,14 +354,14 @@ static void refresh_dns_entry(struct cache_entry *entry, char *name) } if (!entry->ipv4) { - DBG("Refresing A record for %s", name); + debug("Refreshing A record for %s", name); g_resolv_lookup_hostname(ipv4_resolve, name, dummy_resolve_func, NULL); age = 4; } if (!entry->ipv6) { - DBG("Refresing AAAA record for %s", name); + debug("Refreshing AAAA record for %s", name); g_resolv_lookup_hostname(ipv6_resolve, name, dummy_resolve_func, NULL); age = 4; @@ -374,7 +376,7 @@ static int dns_name_length(unsigned char *buf) { if ((buf[0] & NS_CMPRSFLGS) == NS_CMPRSFLGS) /* compressed name */ return 2; - return strlen((char *)buf); + return strlen((char *)buf) + 1; } static void update_cached_ttl(unsigned char *buf, int len, int new_ttl) @@ -471,7 +473,7 @@ static void send_cached_response(int sk, unsigned char *buf, int len, else update_cached_ttl((unsigned char *)hdr, adj_len, ttl); - DBG("sk %d id 0x%04x answers %d ptr %p length %d dns %d", + debug("sk %d id 0x%04x answers %d ptr %p length %d dns %d", sk, hdr->id, answers, ptr, len, dns_len); err = sendto(sk, ptr, len, MSG_NOSIGNAL, to, tolen); @@ -483,7 +485,7 @@ static void send_cached_response(int sk, unsigned char *buf, int len, if (err != len || (dns_len != (len - 2) && protocol == IPPROTO_TCP) || (dns_len != len && protocol == IPPROTO_UDP)) - DBG("Packet length mismatch, sent %d wanted %d dns %d", + debug("Packet length mismatch, sent %d wanted %d dns %d", err, len, dns_len); } @@ -494,7 +496,7 @@ static void send_response(int sk, unsigned char *buf, int len, struct domain_hdr *hdr; int err, offset = protocol_offset(protocol); - DBG("sk %d", sk); + debug("sk %d", sk); if (offset < 0) return; @@ -504,7 +506,7 @@ static void send_response(int sk, unsigned char *buf, int len, hdr = (void *) (buf + offset); - DBG("id 0x%04x qr %d opcode %d", hdr->id, hdr->qr, hdr->opcode); + debug("id 0x%04x qr %d opcode %d", hdr->id, hdr->qr, hdr->opcode); hdr->qr = 1; hdr->rcode = ns_r_servfail; @@ -556,7 +558,7 @@ static gboolean request_timeout(gpointer user_data) if (!req) return FALSE; - DBG("id 0x%04x", req->srcid); + debug("id 0x%04x", req->srcid); request_list = g_slist_remove(request_list, req); @@ -598,7 +600,7 @@ static gboolean request_timeout(gpointer user_data) * if we get a request timeout from server. */ if (req->protocol == IPPROTO_TCP) { - DBG("client %d removed", req->client_sk); + debug("client %d removed", req->client_sk); g_hash_table_remove(partial_tcp_req_table, GINT_TO_POINTER(req->client_sk)); } @@ -616,7 +618,7 @@ static int append_query(unsigned char *buf, unsigned int size, unsigned char *ptr = buf; int len; - DBG("query %s domain %s", query, domain); + debug("query %s domain %s", query, domain); while (query) { const char *tmp; @@ -686,7 +688,7 @@ static void cache_enforce_validity(struct cache_entry *entry) if (!cache_check_is_valid(entry->ipv4, current_time) && entry->ipv4) { - DBG("cache timeout \"%s\" type A", entry->key); + debug("cache timeout \"%s\" type A", entry->key); g_free(entry->ipv4->data); g_free(entry->ipv4); entry->ipv4 = NULL; @@ -695,7 +697,7 @@ static void cache_enforce_validity(struct cache_entry *entry) if (!cache_check_is_valid(entry->ipv6, current_time) && entry->ipv6) { - DBG("cache timeout \"%s\" type AAAA", entry->key); + debug("cache timeout \"%s\" type AAAA", entry->key); g_free(entry->ipv6->data); g_free(entry->ipv6); entry->ipv6 = NULL; @@ -720,7 +722,7 @@ static uint16_t cache_check_validity(char *question, uint16_t type, switch (type) { case 1: /* IPv4 */ if (!cache_check_is_valid(entry->ipv4, current_time)) { - DBG("cache %s \"%s\" type A", entry->ipv4 ? + debug("cache %s \"%s\" type A", entry->ipv4 ? "timeout" : "entry missing", question); if (want_refresh) @@ -739,7 +741,7 @@ static uint16_t cache_check_validity(char *question, uint16_t type, case 28: /* IPv6 */ if (!cache_check_is_valid(entry->ipv6, current_time)) { - DBG("cache %s \"%s\" type AAAA", entry->ipv6 ? + debug("cache %s \"%s\" type AAAA", entry->ipv6 ? "timeout" : "entry missing", question); if (want_refresh) @@ -785,7 +787,7 @@ static gboolean try_remove_cache(gpointer user_data) cache_timer = 0; if (__sync_fetch_and_sub(&cache_refcount, 1) == 1) { - DBG("No cache users, removing it."); + debug("No cache users, removing it."); g_hash_table_destroy(cache); cache = NULL; @@ -1002,7 +1004,7 @@ static int parse_response(unsigned char *buf, int buflen, if (buflen < 12) return -EINVAL; - DBG("qr %d qdcount %d", hdr->qr, qdcount); + debug("qr %d qdcount %d", hdr->qr, qdcount); /* We currently only cache responses where question count is 1 */ if (hdr->qr != 1 || qdcount != 1) @@ -1248,7 +1250,7 @@ static void cache_cleanup(void) count = g_hash_table_foreach_remove(cache, cache_check_entry, &data); } - DBG("removed %d in the first pass", count); + debug("removed %d in the first pass", count); /* * In the second pass, if the first pass turned up blank, @@ -1312,7 +1314,7 @@ static gboolean cache_invalidate_entry(gpointer key, gpointer value, */ static void cache_invalidate(void) { - DBG("Invalidating the DNS cache %p", cache); + debug("Invalidating the DNS cache %p", cache); if (!cache) return; @@ -1344,7 +1346,7 @@ static void cache_refresh_entry(struct cache_entry *entry) *c = '.'; c += jump + 1; } - DBG("Refreshing %s\n", dns_name); + debug("Refreshing %s\n", dns_name); /* then refresh the hostname */ refresh_dns_entry(entry, &dns_name[1]); } @@ -1380,7 +1382,7 @@ static int reply_query_type(unsigned char *msg, int len) return 0; /* now the query, which is a name and 2 16 bit words */ - l = dns_name_length(c) + 1; + l = dns_name_length(c); c += l; type = c[0] << 8 | c[1]; @@ -1421,7 +1423,7 @@ static int cache_update(struct server_data *srv, unsigned char *msg, if (offset < 0) return 0; - DBG("offset %d hdr %p msg %p rcode %d", offset, hdr, msg, hdr->rcode); + debug("offset %d hdr %p msg %p rcode %d", offset, hdr, msg, hdr->rcode); /* Continue only if response code is 0 (=ok) */ if (hdr->rcode != ns_r_noerror) @@ -1601,7 +1603,7 @@ static int cache_update(struct server_data *srv, unsigned char *msg, cache_size++; } - DBG("cache %d %squestion \"%s\" type %d ttl %d size %zd packet %u " + debug("cache %d %squestion \"%s\" type %d ttl %d size %zd packet %u " "dns len %u", cache_size, new_entry ? "new " : "old ", question, type, ttl, @@ -1627,7 +1629,7 @@ static int ns_resolv(struct server_data *server, struct request_data *req, int ttl_left = 0; struct cache_data *data; - DBG("cache hit %s type %s", lookup, type == 1 ? "A" : "AAAA"); + debug("cache hit %s type %s", lookup, type == 1 ? "A" : "AAAA"); if (type == 1) data = entry->ipv4; else @@ -1689,7 +1691,7 @@ static int ns_resolv(struct server_data *server, struct request_data *req, err = sendto(sk, request, req->request_len, MSG_NOSIGNAL, server->server_addr, server->server_addr_len); if (err < 0) { - DBG("Cannot send message to server %s sock %d " + debug("Cannot send message to server %s sock %d " "protocol %d (%s/%d)", server->server, sk, server->protocol, strerror(errno), errno); @@ -1749,7 +1751,7 @@ static int ns_resolv(struct server_data *server, struct request_data *req, alt[1] = req_len & 0xff; } - DBG("req %p dstid 0x%04x altid 0x%04x", req, req->dstid, + debug("req %p dstid 0x%04x altid 0x%04x", req, req->dstid, req->altid); err = send(sk, alt, req->request_len + domlen, MSG_NOSIGNAL); @@ -1771,7 +1773,7 @@ static char *convert_label(char *start, char *end, char *ptr, char *uptr, pos = dn_expand((u_char *)start, (u_char *)end, (u_char *)ptr, name, NS_MAXLABEL); if (pos < 0) { - DBG("uncompress error [%d/%s]", errno, strerror(errno)); + debug("uncompress error [%d/%s]", errno, strerror(errno)); goto out; } @@ -1781,7 +1783,7 @@ static char *convert_label(char *start, char *end, char *ptr, char *uptr, */ comp_pos = dn_comp(name, (u_char *)uptr, remaining_len, NULL, NULL); if (comp_pos < 0) { - DBG("compress error [%d/%s]", errno, strerror(errno)); + debug("compress error [%d/%s]", errno, strerror(errno)); goto out; } @@ -1800,7 +1802,7 @@ static char *uncompress(int16_t field_count, char *start, char *end, { char *uptr = *uncompressed_ptr; /* position in result buffer */ - DBG("count %d ptr %p end %p uptr %p", field_count, ptr, end, uptr); + debug("count %d ptr %p end %p uptr %p", field_count, ptr, end, uptr); while (field_count-- > 0 && ptr < end) { int dlen; /* data field length */ @@ -1822,7 +1824,7 @@ static char *uncompress(int16_t field_count, char *start, char *end, ulen = strlen(name); strncpy(uptr, name, uncomp_len - (uptr - uncompressed)); - DBG("pos %d ulen %d left %d name %s", pos, ulen, + debug("pos %d ulen %d left %d name %s", pos, ulen, (int)(uncomp_len - (uptr - uncompressed)), uptr); uptr += ulen; @@ -1866,7 +1868,7 @@ static char *uncompress(int16_t field_count, char *start, char *end, dlen = uptr[-2] << 8 | uptr[-1]; if (ptr + dlen > end) { - DBG("data len %d too long", dlen); + debug("data len %d too long", dlen); goto out; } @@ -1977,13 +1979,13 @@ static int forward_dns_reply(unsigned char *reply, int reply_len, int protocol, hdr = (void *)(reply + offset); dns_id = reply[offset] | reply[offset + 1] << 8; - DBG("Received %d bytes (id 0x%04x)", reply_len, dns_id); + debug("Received %d bytes (id 0x%04x)", reply_len, dns_id); req = find_request(dns_id); if (!req) return -EINVAL; - DBG("req %p dstid 0x%04x altid 0x%04x rcode %d", + debug("req %p dstid 0x%04x altid 0x%04x rcode %d", req, req->dstid, req->altid, hdr->rcode); reply[offset] = req->srcid & 0xff; @@ -2039,7 +2041,7 @@ static int forward_dns_reply(unsigned char *reply, int reply_len, int protocol, ptr[dns_type_pos + 3]; if (dns_type != ns_t_a && dns_type != ns_t_aaaa && dns_class != ns_c_in) { - DBG("Pass msg dns type %d class %d", + debug("Pass msg dns type %d class %d", dns_type, dns_class); goto pass; } @@ -2098,21 +2100,21 @@ static int forward_dns_reply(unsigned char *reply, int reply_len, int protocol, (char *)reply + offset, eom, ptr, uncompressed, NS_MAXDNAME, &uptr); - if (ptr == NULL) + if (!ptr) goto out; ptr = uncompress(ntohs(hdr->nscount), (char *)reply + offset, eom, ptr, uncompressed, NS_MAXDNAME, &uptr); - if (ptr == NULL) + if (!ptr) goto out; ptr = uncompress(ntohs(hdr->arcount), (char *)reply + offset, eom, ptr, uncompressed, NS_MAXDNAME, &uptr); - if (ptr == NULL) + if (!ptr) goto out; /* @@ -2128,7 +2130,7 @@ static int forward_dns_reply(unsigned char *reply, int reply_len, int protocol, new_len = strip_domains(uncompressed, answers, uptr - answers); if (new_len < 0) { - DBG("Corrupted packet"); + debug("Corrupted packet"); return -EINVAL; } @@ -2193,10 +2195,10 @@ out: } if (err < 0) - DBG("Cannot send msg, sk %d proto %d errno %d/%s", sk, + debug("Cannot send msg, sk %d proto %d errno %d/%s", sk, protocol, errno, strerror(errno)); else - DBG("proto %d sent %d bytes to %d", protocol, err, sk); + debug("proto %d sent %d bytes to %d", protocol, err, sk); destroy_request_data(req); @@ -2205,7 +2207,7 @@ out: static void server_destroy_socket(struct server_data *data) { - DBG("index %d server %s proto %d", data->index, + debug("index %d server %s proto %d", data->index, data->server, data->protocol); if (data->watch > 0) { @@ -2230,7 +2232,7 @@ static void server_destroy_socket(struct server_data *data) static void destroy_server(struct server_data *server) { - DBG("index %d server %s sock %d", server->index, server->server, + debug("index %d server %s sock %d", server->index, server->server, server->channel ? g_io_channel_unix_get_fd(server->channel): -1); @@ -2238,7 +2240,7 @@ static void destroy_server(struct server_data *server) server_destroy_socket(server); if (server->protocol == IPPROTO_UDP && server->enabled) - DBG("Removing DNS server %s", server->server); + debug("Removing DNS server %s", server->server); g_free(server->server); g_list_free_full(server->domains, g_free); @@ -2311,7 +2313,7 @@ static gboolean tcp_server_event(GIOChannel *channel, GIOCondition condition, if (condition & (G_IO_NVAL | G_IO_ERR | G_IO_HUP)) { GSList *list; hangup: - DBG("TCP server channel closed, sk %d", sk); + debug("TCP server channel closed, sk %d", sk); /* * Discard any partial response which is buffered; better @@ -2320,9 +2322,11 @@ hangup: g_free(server->incoming_reply); server->incoming_reply = NULL; - for (list = request_list; list; list = list->next) { + list = request_list; + while (list) { struct request_data *req = list->data; struct domain_hdr *hdr; + list = list->next; if (req->protocol == IPPROTO_UDP) continue; @@ -2364,7 +2368,7 @@ hangup: domains = domains->next) { char *dom = domains->data; - DBG("Adding domain %s to %s", + debug("Adding domain %s to %s", dom, server->server); server->domains = g_list_append(server->domains, @@ -2389,7 +2393,7 @@ hangup: continue; } - DBG("Sending req %s over TCP", (char *)req->name); + debug("Sending req %s over TCP", (char *)req->name); status = ns_resolv(server, req, req->request, req->name); @@ -2448,7 +2452,7 @@ hangup: reply_len = reply_len_buf[1] | reply_len_buf[0] << 8; reply_len += 2; - DBG("TCP reply %d bytes from %d", reply_len, sk); + debug("TCP reply %d bytes from %d", reply_len, sk); reply = g_try_malloc(sizeof(*reply) + reply_len + 2); if (!reply) @@ -2495,7 +2499,7 @@ static gboolean tcp_idle_timeout(gpointer user_data) { struct server_data *server = user_data; - DBG(""); + debug(""); if (!server) return FALSE; @@ -2510,7 +2514,7 @@ static int server_create_socket(struct server_data *data) int sk, err; char *interface; - DBG("index %d server %s proto %d", data->index, + debug("index %d server %s proto %d", data->index, data->server, data->protocol); sk = socket(data->server_addr->sa_family, @@ -2524,7 +2528,7 @@ static int server_create_socket(struct server_data *data) return -err; } - DBG("sk %d", sk); + debug("sk %d", sk); interface = connman_inet_ifname(data->index); if (interface) { @@ -2584,6 +2588,25 @@ static int server_create_socket(struct server_data *data) return 0; } +static void enable_fallback(bool enable) +{ + GSList *list; + + for (list = server_list; list; list = list->next) { + struct server_data *data = list->data; + + if (data->index != -1) + continue; + + if (enable) + DBG("Enabling fallback DNS server %s", data->server); + else + DBG("Disabling fallback DNS server %s", data->server); + + data->enabled = enable; + } +} + #if defined TIZEN_EXT static void destroy_server_sec(struct server_data *server) @@ -2841,6 +2864,8 @@ static struct server_data *create_server(int index, data->index)) { data->enabled = true; DBG("Adding DNS server %s", data->server); + + enable_fallback(false); } server_list = g_slist_append(server_list, data); @@ -2862,7 +2887,7 @@ static bool resolv(struct request_data *req, continue; } - DBG("server %s enabled %d", data->server, data->enabled); + debug("server %s enabled %d", data->server, data->enabled); if (!data->enabled) continue; @@ -2881,7 +2906,7 @@ static bool resolv(struct request_data *req, return false; } -static void append_domain(int index, const char *domain) +static void update_domain(int index, const char *domain, bool append) { GSList *list; @@ -2912,13 +2937,27 @@ static void append_domain(int index, const char *domain) } } - if (!dom_found) { + if (!dom_found && append) { data->domains = g_list_append(data->domains, g_strdup(domain)); + } else if (dom_found && !append) { + data->domains = + g_list_remove(data->domains, dom); + g_free(dom); } } } +static void append_domain(int index, const char *domain) +{ + update_domain(index, domain, true); +} + +static void remove_domain(int index, const char *domain) +{ + update_domain(index, domain, false); +} + static void flush_requests(struct server_data *server) { GSList *list; @@ -2988,12 +3027,22 @@ static void remove_server(int index, const char *domain, const char *server, int protocol) { struct server_data *data; + GSList *list; data = find_server(index, server, protocol); if (!data) return; destroy_server(data); + + for (list = server_list; list; list = list->next) { + struct server_data *data = list->data; + + if (data->index != -1 && data->enabled == true) + return; + } + + enable_fallback(true); } int __connman_dnsproxy_remove(int index, const char *domain, @@ -3001,9 +3050,15 @@ int __connman_dnsproxy_remove(int index, const char *domain, { DBG("index %d server %s", index, server); - if (!server) + if (!server && !domain) return -EINVAL; + if (!server) { + remove_domain(index, domain); + + return 0; + } + if (g_str_equal(server, "127.0.0.1")) return -ENODEV; @@ -3044,6 +3099,7 @@ static void dnsproxy_offline_mode(bool enabled) static void dnsproxy_default_changed(struct connman_service *service) { + bool server_enabled = false; GSList *list; int index; @@ -3068,12 +3124,16 @@ static void dnsproxy_default_changed(struct connman_service *service) if (data->index == index) { DBG("Enabling DNS server %s", data->server); data->enabled = true; + server_enabled = true; } else { DBG("Disabling DNS server %s", data->server); data->enabled = false; } } + if (!server_enabled) + enable_fallback(true); + cache_refresh(); } @@ -3098,7 +3158,7 @@ static int parse_request(unsigned char *buf, int len, if (len < 12) return -EINVAL; - DBG("id 0x%04x qr %d opcode %d qdcount %d arcount %d", + debug("id 0x%04x qr %d opcode %d qdcount %d arcount %d", hdr->id, hdr->qr, hdr->opcode, qdcount, arcount); @@ -3136,7 +3196,7 @@ static int parse_request(unsigned char *buf, int len, edns0_bufsize = last_label[7] << 8 | last_label[8]; - DBG("EDNS0 buffer size %u", edns0_bufsize); + debug("EDNS0 buffer size %u", edns0_bufsize); /* This is an evil hack until full TCP support has been * implemented. @@ -3152,7 +3212,7 @@ static int parse_request(unsigned char *buf, int len, } } - DBG("query %s", name); + debug("query %s", name); return 0; } @@ -3163,7 +3223,7 @@ static void client_reset(struct tcp_partial_client_data *client) return; if (client->channel) { - DBG("client %d closing", + debug("client %d closing", g_io_channel_unix_get_fd(client->channel)); g_io_channel_unref(client->channel); @@ -3207,14 +3267,14 @@ static bool read_tcp_data(struct tcp_partial_client_data *client, client_sk = g_io_channel_unix_get_fd(client->channel); if (read_len == 0) { - DBG("client %d closed, pending %d bytes", + debug("client %d closed, pending %d bytes", client_sk, client->buf_end); g_hash_table_remove(partial_tcp_req_table, GINT_TO_POINTER(client_sk)); return false; } - DBG("client %d received %d bytes", client_sk, read_len); + debug("client %d received %d bytes", client_sk, read_len); client->buf_end += read_len; @@ -3223,24 +3283,24 @@ static bool read_tcp_data(struct tcp_partial_client_data *client, msg_len = get_msg_len(client->buf); if (msg_len > TCP_MAX_BUF_LEN) { - DBG("client %d sent too much data %d", client_sk, msg_len); + debug("client %d sent too much data %d", client_sk, msg_len); g_hash_table_remove(partial_tcp_req_table, GINT_TO_POINTER(client_sk)); return false; } read_another: - DBG("client %d msg len %d end %d past end %d", client_sk, msg_len, + debug("client %d msg len %d end %d past end %d", client_sk, msg_len, client->buf_end, client->buf_end - (msg_len + 2)); if (client->buf_end < (msg_len + 2)) { - DBG("client %d still missing %d bytes", + debug("client %d still missing %d bytes", client_sk, msg_len + 2 - client->buf_end); return true; } - DBG("client %d all data %d received", client_sk, msg_len); + debug("client %d all data %d received", client_sk, msg_len); err = parse_request(client->buf + 2, msg_len, query, sizeof(query)); @@ -3281,7 +3341,7 @@ read_another: int ttl_left = 0; struct cache_data *data; - DBG("cache hit %s type %s", query, qtype == 1 ? "A" : "AAAA"); + debug("cache hit %s type %s", query, qtype == 1 ? "A" : "AAAA"); if (qtype == 1) data = entry->ipv4; else @@ -3298,7 +3358,7 @@ read_another: g_free(req); goto out; } else - DBG("data missing, ignoring cache for this query"); + debug("data missing, ignoring cache for this query"); } for (list = server_list; list; list = list->next) { @@ -3353,7 +3413,7 @@ read_another: out: if (client->buf_end > (msg_len + 2)) { - DBG("client %d buf %p -> %p end %d len %d new %d", + debug("client %d buf %p -> %p end %d len %d new %d", client_sk, client->buf + msg_len + 2, client->buf, client->buf_end, @@ -3369,12 +3429,12 @@ out: */ msg_len = get_msg_len(client->buf); if ((msg_len + 2) == client->buf_end) { - DBG("client %d reading another %d bytes", client_sk, + debug("client %d reading another %d bytes", client_sk, msg_len + 2); goto read_another; } } else { - DBG("client %d clearing reading buffer", client_sk); + debug("client %d clearing reading buffer", client_sk); client->buf_end = 0; memset(client->buf, 0, TCP_MAX_BUF_LEN); @@ -3436,7 +3496,7 @@ static gboolean tcp_client_event(GIOChannel *channel, GIOCondition condition, if (errno == EAGAIN || errno == EWOULDBLOCK) return TRUE; - DBG("client %d cannot read errno %d/%s", client_sk, -errno, + debug("client %d cannot read errno %d/%s", client_sk, -errno, strerror(errno)); g_hash_table_remove(partial_tcp_req_table, GINT_TO_POINTER(client_sk)); @@ -3453,7 +3513,7 @@ static gboolean client_timeout(gpointer user_data) sock = g_io_channel_unix_get_fd(client->channel); - DBG("client %d timeout pending %d bytes", sock, client->buf_end); + debug("client %d timeout pending %d bytes", sock, client->buf_end); g_hash_table_remove(partial_tcp_req_table, GINT_TO_POINTER(sock)); @@ -3493,7 +3553,7 @@ static bool tcp_listener_event(GIOChannel *channel, GIOCondition condition, struct timeval tv; fd_set readfds; - DBG("condition 0x%02x channel %p ifdata %p family %d", + debug("condition 0x%02x channel %p ifdata %p family %d", condition, channel, ifdata, family); if (condition & (G_IO_NVAL | G_IO_ERR | G_IO_HUP)) { @@ -3529,9 +3589,9 @@ static bool tcp_listener_event(GIOChannel *channel, GIOCondition condition, select(sk + 1, &readfds, NULL, NULL, &tv); if (FD_ISSET(sk, &readfds)) { client_sk = accept(sk, client_addr, client_addr_len); - DBG("client %d accepted", client_sk); + debug("client %d accepted", client_sk); } else { - DBG("No data to read from master %d, waiting.", sk); + debug("No data to read from master %d, waiting.", sk); return true; } @@ -3565,9 +3625,9 @@ static bool tcp_listener_event(GIOChannel *channel, GIOCondition condition, client->ifdata = ifdata; - DBG("client %d created %p", client_sk, client); + debug("client %d created %p", client_sk, client); } else { - DBG("client %d already exists %p", client_sk, client); + debug("client %d already exists %p", client_sk, client); } if (!client->buf) { @@ -3591,11 +3651,11 @@ static bool tcp_listener_event(GIOChannel *channel, GIOCondition condition, len = recv(client_sk, client->buf, TCP_MAX_BUF_LEN, 0); if (len < 0) { if (errno == EAGAIN || errno == EWOULDBLOCK) { - DBG("client %d no data to read, waiting", client_sk); + debug("client %d no data to read, waiting", client_sk); return true; } - DBG("client %d cannot read errno %d/%s", client_sk, -errno, + debug("client %d cannot read errno %d/%s", client_sk, -errno, strerror(errno)); g_hash_table_remove(partial_tcp_req_table, GINT_TO_POINTER(client_sk)); @@ -3603,14 +3663,14 @@ static bool tcp_listener_event(GIOChannel *channel, GIOCondition condition, } if (len < 2) { - DBG("client %d not enough data to read, waiting", client_sk); + debug("client %d not enough data to read, waiting", client_sk); client->buf_end += len; return true; } msg_len = get_msg_len(client->buf); if (msg_len > TCP_MAX_BUF_LEN) { - DBG("client %d invalid message length %u ignoring packet", + debug("client %d invalid message length %u ignoring packet", client_sk, msg_len); g_hash_table_remove(partial_tcp_req_table, GINT_TO_POINTER(client_sk)); @@ -3626,7 +3686,7 @@ static bool tcp_listener_event(GIOChannel *channel, GIOCondition condition, #else if (msg_len != (unsigned int)(len - 2)) { #endif - DBG("client %d sent %d bytes but expecting %u pending %d", + debug("client %d sent %d bytes but expecting %u pending %d", client_sk, len, msg_len + 2, msg_len + 2 - len); client->buf_end += len; @@ -3696,7 +3756,7 @@ static bool udp_listener_event(GIOChannel *channel, GIOCondition condition, if (len < 2) return true; - DBG("Received %d bytes (id 0x%04x)", len, buf[0] | buf[1] << 8); + debug("Received %d bytes (id 0x%04x)", len, buf[0] | buf[1] << 8); err = parse_request(buf, len, query, sizeof(query)); if (err < 0 || (g_slist_length(server_list) == 0)) { @@ -3788,7 +3848,7 @@ static GIOChannel *get_listener(int family, int protocol, int index) int is_socket_inet = 0; #endif - DBG("family %d protocol %d index %d", family, protocol, index); + debug("family %d protocol %d index %d", family, protocol, index); switch (protocol) { case IPPROTO_UDP: @@ -4087,7 +4147,7 @@ static void destroy_listener(struct listener_data *ifdata) for (list = request_list; list; list = list->next) { struct request_data *req = list->data; - DBG("Dropping request (id 0x%04x -> 0x%04x)", + debug("Dropping request (id 0x%04x -> 0x%04x)", req->srcid, req->dstid); destroy_request_data(req); list->data = NULL; diff --git a/src/firewall.c b/src/firewall-iptables.c index 90c3d3c1..45943a82 100755..100644 --- a/src/firewall.c +++ b/src/firewall-iptables.c @@ -2,7 +2,7 @@ * * Connection Manager * - * Copyright (C) 2013 BMW Car IT GmbH. + * Copyright (C) 2013,2015 BMW Car IT GmbH. * * 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 @@ -46,6 +46,7 @@ struct connman_managed_table { }; struct fw_rule { + bool enabled; char *table; char *chain; char *rule_spec; @@ -56,8 +57,8 @@ struct firewall_context { }; static GSList *managed_tables; - -static bool firewall_is_up; +static struct firewall_context *connmark_ctx; +static unsigned int connmark_ref; static int chain_to_index(const char *chain_name) { @@ -267,7 +268,55 @@ void __connman_firewall_destroy(struct firewall_context *ctx) g_free(ctx); } -int __connman_firewall_add_rule(struct firewall_context *ctx, +static int enable_rule(struct fw_rule *rule) +{ + int err; + + if (rule->enabled) + return -EALREADY; + + DBG("%s %s %s", rule->table, rule->chain, rule->rule_spec); + + err = insert_managed_rule(rule->table, rule->chain, rule->rule_spec); + if (err < 0) + return err; + + err = __connman_iptables_commit(rule->table); + if (err < 0) + return err; + + rule->enabled = true; + + return 0; +} + +static int disable_rule(struct fw_rule *rule) +{ + int err; + + if (!rule->enabled) + return -EALREADY; + + err = delete_managed_rule(rule->table, rule->chain, rule->rule_spec); + if (err < 0) { + connman_error("Cannot remove previously installed " + "iptables rules: %s", strerror(-err)); + return err; + } + + err = __connman_iptables_commit(rule->table); + if (err < 0) { + connman_error("Cannot remove previously installed " + "iptables rules: %s", strerror(-err)); + return err; + } + + rule->enabled = false; + + return 0; +} + +static void firewall_add_rule(struct firewall_context *ctx, const char *table, const char *chain, const char *rule_fmt, ...) @@ -284,85 +333,208 @@ int __connman_firewall_add_rule(struct firewall_context *ctx, rule = g_new0(struct fw_rule, 1); + rule->enabled = false; rule->table = g_strdup(table); rule->chain = g_strdup(chain); rule->rule_spec = rule_spec; ctx->rules = g_list_append(ctx->rules, rule); - - return 0; } -static int firewall_disable(GList *rules) +static void firewall_remove_rules(struct firewall_context *ctx) { struct fw_rule *rule; GList *list; - int err; - for (list = rules; list; list = g_list_previous(list)) { + for (list = g_list_last(ctx->rules); list; + list = g_list_previous(list)) { rule = list->data; - err = delete_managed_rule(rule->table, - rule->chain, rule->rule_spec); - if (err < 0) { - connman_error("Cannot remove previously installed " - "iptables rules: %s", strerror(-err)); - return err; - } + ctx->rules = g_list_remove(ctx->rules, rule); + cleanup_fw_rule(rule); + } +} - err = __connman_iptables_commit(rule->table); - if (err < 0) { - connman_error("Cannot remove previously installed " - "iptables rules: %s", strerror(-err)); - return err; - } +static int firewall_enable_rules(struct firewall_context *ctx) +{ + struct fw_rule *rule; + GList *list; + int err = -ENOENT; + + for (list = g_list_first(ctx->rules); list; list = g_list_next(list)) { + rule = list->data; + + err = enable_rule(rule); + if (err < 0) + break; } - return 0; + return err; } -int __connman_firewall_enable(struct firewall_context *ctx) +static int firewall_disable_rules(struct firewall_context *ctx) { struct fw_rule *rule; GList *list; - int err; + int e; + int err = -ENOENT; - for (list = g_list_first(ctx->rules); list; - list = g_list_next(list)) { + for (list = g_list_last(ctx->rules); list; + list = g_list_previous(list)) { rule = list->data; - DBG("%s %s %s", rule->table, rule->chain, rule->rule_spec); + e = disable_rule(rule); - err = insert_managed_rule(rule->table, - rule->chain, rule->rule_spec); - if (err < 0) - goto err; - - err = __connman_iptables_commit(rule->table); - if (err < 0) - goto err; + /* Report last error back */ + if (e == 0 && err == -ENOENT) + err = 0; + else if (e < 0) + err = e; } - firewall_is_up = true; + return err; +} + +int __connman_firewall_enable_nat(struct firewall_context *ctx, + char *address, unsigned char prefixlen, + char *interface) +{ + char *cmd; + int err; + cmd = g_strdup_printf("-s %s/%d -o %s -j MASQUERADE", + address, prefixlen, interface); + + firewall_add_rule(ctx, "nat", "POSTROUTING", cmd); + g_free(cmd); + err = firewall_enable_rules(ctx); + if (err) + firewall_remove_rules(ctx); + return err; +} + +int __connman_firewall_disable_nat(struct firewall_context *ctx) +{ + int err; + + err = firewall_disable_rules(ctx); + if (err < 0) { + DBG("could not disable NAT rule"); + return err; + } + + firewall_remove_rules(ctx); return 0; +} -err: - connman_warn("Failed to install iptables rules: %s", strerror(-err)); +int __connman_firewall_enable_snat(struct firewall_context *ctx, + int index, const char *ifname, + const char *addr) +{ + int err; - firewall_disable(g_list_previous(list)); + firewall_add_rule(ctx, "nat", "POSTROUTING", + "-o %s -j SNAT --to-source %s", + ifname, addr); + err = firewall_enable_rules(ctx); + if (err) + firewall_remove_rules(ctx); return err; } -int __connman_firewall_disable(struct firewall_context *ctx) +int __connman_firewall_disable_snat(struct firewall_context *ctx) +{ + int err; + + err = firewall_disable_rules(ctx); + if (err < 0) { + DBG("could not disable SNAT rule"); + return err; + } + + firewall_remove_rules(ctx); + return 0; +} + +static int firewall_enable_connmark(void) { - return firewall_disable(g_list_last(ctx->rules)); + int err; + + if (connmark_ref > 0) { + connmark_ref++; + return 0; + } + + connmark_ctx = __connman_firewall_create(); + + firewall_add_rule(connmark_ctx, "mangle", "INPUT", + "-j CONNMARK --restore-mark"); + firewall_add_rule(connmark_ctx, "mangle", "POSTROUTING", + "-j CONNMARK --save-mark"); + err = firewall_enable_rules(connmark_ctx); + if (err) { + __connman_firewall_destroy(connmark_ctx); + connmark_ctx = NULL; + return err; + } + connmark_ref++; + return 0; } -bool __connman_firewall_is_up(void) +static void firewall_disable_connmark(void) { - return firewall_is_up; + connmark_ref--; + if (connmark_ref > 0) + return; + + firewall_disable_rules(connmark_ctx); + __connman_firewall_destroy(connmark_ctx); + connmark_ctx = NULL; +} + +int __connman_firewall_enable_marking(struct firewall_context *ctx, + enum connman_session_id_type id_type, + char *id, const char *src_ip, + uint32_t mark) +{ + int err; + + err = firewall_enable_connmark(); + if (err) + return err; + + switch (id_type) { + case CONNMAN_SESSION_ID_TYPE_UID: + firewall_add_rule(ctx, "mangle", "OUTPUT", + "-m owner --uid-owner %s -j MARK --set-mark %d", + id, mark); + break; + case CONNMAN_SESSION_ID_TYPE_GID: + firewall_add_rule(ctx, "mangle", "OUTPUT", + "-m owner --gid-owner %s -j MARK --set-mark %d", + id, mark); + break; + case CONNMAN_SESSION_ID_TYPE_UNKNOWN: + break; + case CONNMAN_SESSION_ID_TYPE_LSM: + default: + return -EINVAL; + } + + if (src_ip) { + firewall_add_rule(ctx, "mangle", "OUTPUT", + "-s %s -j MARK --set-mark %d", + src_ip, mark); + } + + return firewall_enable_rules(ctx); +} + +int __connman_firewall_disable_marking(struct firewall_context *ctx) +{ + firewall_disable_connmark(); + return firewall_disable_rules(ctx); } static void iterate_chains_cb(const char *chain_name, void *user_data) @@ -432,12 +604,9 @@ static void flush_all_tables(void) if (!g_file_test("/proc/net/ip_tables_names", G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) { - firewall_is_up = false; return; } - firewall_is_up = true; - flush_table("filter"); flush_table("mangle"); flush_table("nat"); @@ -447,6 +616,7 @@ int __connman_firewall_init(void) { DBG(""); + __connman_iptables_init(); flush_all_tables(); return 0; @@ -457,4 +627,5 @@ void __connman_firewall_cleanup(void) DBG(""); g_slist_free_full(managed_tables, cleanup_managed_table); + __connman_iptables_cleanup(); } diff --git a/src/firewall-nftables.c b/src/firewall-nftables.c new file mode 100644 index 00000000..1febce44 --- /dev/null +++ b/src/firewall-nftables.c @@ -0,0 +1,1133 @@ +/* + * + * Connection Manager + * + * Copyright (C) 2016 BMW Car IT GmbH. + * + * 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 + * + */ + +/* + * This file is based on the libnftnl examples: + * https://git.netfilter.org/libnftnl/tree/examples + * by Pablo Neira Ayuso. and inspiration from systemd nft implemention + * https://github.com/zonque/systemd/blob/rfc-nftnl/src/shared/firewall-util.c + * by Daniel Mack. + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <stdlib.h> +#include <time.h> +#include <string.h> +#include <errno.h> +#include <stdint.h> +#include <alloca.h> +#include <netinet/in.h> +#include <netinet/ip.h> + +#include <sys/types.h> +#include <pwd.h> + +#include <sys/socket.h> +#include <netinet/in.h> +#include <arpa/inet.h> + +#include <linux/netfilter.h> +#include <linux/netfilter/nfnetlink.h> +#include <linux/netfilter/nf_nat.h> +#include <linux/netfilter/nf_tables.h> + +#include <libmnl/libmnl.h> +#include <libnftnl/table.h> +#include <libnftnl/chain.h> +#include <libnftnl/rule.h> +#include <libnftnl/expr.h> + +#include <glib.h> + +#include "connman.h" + +#define CONNMAN_TABLE "connman" +#define CONNMAN_CHAIN_NAT_PRE "nat-prerouting" +#define CONNMAN_CHAIN_NAT_POST "nat-postrouting" +#define CONNMAN_CHAIN_ROUTE_OUTPUT "route-output" + +static bool debug_enabled = true; + +struct firewall_handle { + uint64_t handle; + const char *chain; +}; + +struct firewall_context { + struct firewall_handle rule; +}; + +struct nftables_info { + struct firewall_handle ct; +}; + +static struct nftables_info *nft_info; + +enum callback_return_type { + CALLBACK_RETURN_NONE = 0, + CALLBACK_RETURN_HANDLE, + CALLBACK_RETURN_BYTE_COUNTER, + _CALLBACK_RETURN_MAX, +}; + +struct callback_data { + enum callback_return_type type; + uint64_t value; + bool success; +}; + +static void debug_netlink_dump_rule(struct nftnl_rule *nlr) +{ + char buf[4096]; + + if (!debug_enabled) + return; + + nftnl_rule_snprintf(buf, sizeof(buf), nlr, 0, 0); + fprintf(stdout, "%s\n", buf); +} + +static void debug_mnl_dump_rule(const void *req, size_t req_size) +{ + if (!debug_enabled) + return; + + mnl_nlmsg_fprintf(stdout, req, req_size, 0); + printf("\n"); +} + +static int rule_expr_cb(struct nftnl_expr *expr, void *data) { + + struct callback_data *cb = data; + const char *name; + + name = nftnl_expr_get_str(expr, NFTNL_EXPR_NAME); + + if (strcmp(name, "counter")) { + cb->value = nftnl_expr_get_u64(expr, NFTNL_EXPR_CTR_BYTES); + cb->success = true; + } + + return 0; +} + +static int rule_cb(const struct nlmsghdr *nlh, int event, + struct callback_data *cb) +{ + struct nftnl_rule *rule; + + rule = nftnl_rule_alloc(); + if (!rule) + return MNL_CB_OK; + + if (nftnl_rule_nlmsg_parse(nlh, rule) < 0) + goto out; + + switch (cb->type) { + case CALLBACK_RETURN_HANDLE: + cb->value = nftnl_rule_get_u64(rule, NFTNL_RULE_HANDLE); + cb->success = true; + break; + + case CALLBACK_RETURN_BYTE_COUNTER: + nftnl_expr_foreach(rule, rule_expr_cb, cb); + break; + + default: + DBG("unhandled callback type %d\n", cb->type); + break; + } + +out: + nftnl_rule_free(rule); + return MNL_CB_STOP; +} + +static int chain_cb(const struct nlmsghdr *nlh, int event, + struct callback_data *cb) +{ + struct nftnl_chain *chain; + + chain = nftnl_chain_alloc(); + if (!chain) + return MNL_CB_OK; + + if (nftnl_chain_nlmsg_parse(nlh, chain) < 0) + goto out; + + switch (cb->type) { + case CALLBACK_RETURN_HANDLE: + cb->value = nftnl_chain_get_u64(chain, NFTNL_CHAIN_HANDLE); + cb->success = true; + break; + + default: + DBG("unhandled callback type %d\n", cb->type); + break; + } + +out: + nftnl_chain_free(chain); + return MNL_CB_OK; +} + +static const char *event_to_str(enum nf_tables_msg_types type) +{ + const char *table[] = { + "NFT_MSG_NEWTABLE", + "NFT_MSG_GETTABLE", + "NFT_MSG_DELTABLE", + "NFT_MSG_NEWCHAIN", + "NFT_MSG_GETCHAIN", + "NFT_MSG_DELCHAIN", + "NFT_MSG_NEWRULE", + "NFT_MSG_GETRULE", + "NFT_MSG_DELRULE", + "NFT_MSG_NEWSET", + "NFT_MSG_GETSET", + "NFT_MSG_DELSET", + "NFT_MSG_NEWSETELEM", + "NFT_MSG_GETSETELEM", + "NFT_MSG_DELSETELEM", + "NFT_MSG_NEWGEN", + "NFT_MSG_GETGEN", + "NFT_MSG_TRACE" + }; + + if (type < sizeof(table)/sizeof(table[0])) + return table[type]; + + return "unknown"; +} + +static int events_cb(const struct nlmsghdr *nlh, void *data) +{ + int event = NFNL_MSG_TYPE(nlh->nlmsg_type); + struct callback_data *cb = data; + int err = MNL_CB_OK; + + if (!cb || cb->type == CALLBACK_RETURN_NONE) + return err; + + DBG("handle event %s", event_to_str(event)); + + switch(event) { + case NFT_MSG_NEWCHAIN: + err = chain_cb(nlh, event, cb); + break; + + case NFT_MSG_NEWRULE: + err = rule_cb(nlh, event, cb); + break; + default: + DBG("unhandled event type %s", event_to_str(event)); + break; + } + + return err; +} + +static int socket_open_and_bind(struct mnl_socket **n) +{ + + struct mnl_socket *nl = NULL; + int err; + + nl = mnl_socket_open(NETLINK_NETFILTER); + if (!nl) + return -errno; + + err = mnl_socket_bind(nl, 1 << (NFNLGRP_NFTABLES-1), + MNL_SOCKET_AUTOPID); + if (err < 0) { + err = errno; + mnl_socket_close(nl); + return -err; + } + + *n = nl; + return 0; +} + +static int send_and_dispatch(struct mnl_socket *nl, const void *req, + size_t req_size, enum callback_return_type callback_type, + uint64_t *callback_value) +{ + struct callback_data cb = {}; + uint32_t portid; + int err; + + debug_mnl_dump_rule(req, req_size); + + err = mnl_socket_sendto(nl, req, req_size); + if (err < 0) + return -errno; + + portid = mnl_socket_get_portid(nl); + cb.type = callback_type; + + for (;;) { + char buf[MNL_SOCKET_BUFFER_SIZE]; + + err = mnl_socket_recvfrom(nl, buf, sizeof(buf)); + if (err <= 0) + break; + + err = mnl_cb_run(buf, err, 0, portid, events_cb, &cb); + if (err <= 0) + break; + } + + if (err < 0) + return -errno; + + if (callback_type == CALLBACK_RETURN_NONE) + return 0; + + if (cb.success) { + if (callback_value) + *callback_value = cb.value; + + return 0; + } + + return -ENOENT; +} + +static void put_batch_headers(char *buf, uint16_t type, uint32_t seq) +{ + + struct nlmsghdr *nlh; + struct nfgenmsg *nfg; + + nlh = mnl_nlmsg_put_header(buf); + nlh->nlmsg_type = type; + nlh->nlmsg_flags = NLM_F_REQUEST; + nlh->nlmsg_seq = seq; + + nfg = mnl_nlmsg_put_extra_header(nlh, sizeof(*nfg)); + nfg->nfgen_family = AF_INET; + nfg->version = NFNETLINK_V0; + nfg->res_id = NFNL_SUBSYS_NFTABLES; +} + +static int add_payload(struct nftnl_rule *rule, uint32_t base, + uint32_t dreg, uint32_t offset, uint32_t len) +{ + struct nftnl_expr *expr; + + expr = nftnl_expr_alloc("payload"); + if (!expr) + return -ENOMEM; + + nftnl_expr_set_u32(expr, NFTNL_EXPR_PAYLOAD_BASE, base); + nftnl_expr_set_u32(expr, NFTNL_EXPR_PAYLOAD_DREG, dreg); + nftnl_expr_set_u32(expr, NFTNL_EXPR_PAYLOAD_OFFSET, offset); + nftnl_expr_set_u32(expr, NFTNL_EXPR_PAYLOAD_LEN, len); + + nftnl_rule_add_expr(rule, expr); + + return 0; +} + +static int add_bitwise(struct nftnl_rule *rule, int reg, const void *mask, + size_t len) +{ + struct nftnl_expr *expr; + uint8_t *xor; + + expr = nftnl_expr_alloc("bitwise"); + if (!expr) + return -ENOMEM; + + xor = alloca(len); + memset(xor, 0, len); + + nftnl_expr_set_u32(expr, NFTNL_EXPR_BITWISE_SREG, reg); + nftnl_expr_set_u32(expr, NFTNL_EXPR_BITWISE_DREG, reg); + nftnl_expr_set_u32(expr, NFTNL_EXPR_BITWISE_LEN, len); + nftnl_expr_set(expr, NFTNL_EXPR_BITWISE_MASK, mask, len); + nftnl_expr_set(expr, NFTNL_EXPR_BITWISE_XOR, xor, len); + + nftnl_rule_add_expr(rule, expr); + + return 0; +} + +static int add_cmp(struct nftnl_rule *rule, uint32_t sreg, uint32_t op, + const void *data, uint32_t data_len) +{ + struct nftnl_expr *expr; + + expr = nftnl_expr_alloc("cmp"); + if (!expr) + return -ENOMEM; + + nftnl_expr_set_u32(expr, NFTNL_EXPR_CMP_SREG, sreg); + nftnl_expr_set_u32(expr, NFTNL_EXPR_CMP_OP, op); + nftnl_expr_set(expr, NFTNL_EXPR_CMP_DATA, data, data_len); + + nftnl_rule_add_expr(rule, expr); + + return 0; +} + +static int table_cmd(struct mnl_socket *nl, struct nftnl_table *t, + uint16_t cmd, uint16_t family, uint16_t type) +{ + char buf[MNL_SOCKET_BUFFER_SIZE]; + struct mnl_nlmsg_batch *batch; + struct nlmsghdr *nlh; + uint32_t seq = 0; + int err; + + batch = mnl_nlmsg_batch_start(buf, sizeof(buf)); + nftnl_batch_begin(mnl_nlmsg_batch_current(batch), seq++); + mnl_nlmsg_batch_next(batch); + + nlh = nftnl_table_nlmsg_build_hdr(mnl_nlmsg_batch_current(batch), + cmd, family, type, seq++); + nftnl_table_nlmsg_build_payload(nlh, t); + nftnl_table_free(t); + mnl_nlmsg_batch_next(batch); + + nftnl_batch_end(mnl_nlmsg_batch_current(batch), seq++); + mnl_nlmsg_batch_next(batch); + + /* The current table commands do not support any callback returns. */ + err = send_and_dispatch(nl, mnl_nlmsg_batch_head(batch), + mnl_nlmsg_batch_size(batch), 0, NULL); + + mnl_nlmsg_batch_stop(batch); + return err; +} + +static int chain_cmd(struct mnl_socket *nl, struct nftnl_chain *chain, + uint16_t cmd, int family, uint16_t type, + enum callback_return_type cb_type, uint64_t *cb_val) +{ + char buf[MNL_SOCKET_BUFFER_SIZE]; + struct mnl_nlmsg_batch *batch; + struct nlmsghdr *nlh; + uint32_t seq = 0; + int err; + + batch = mnl_nlmsg_batch_start(buf, sizeof(buf)); + nftnl_batch_begin(mnl_nlmsg_batch_current(batch), seq++); + mnl_nlmsg_batch_next(batch); + + nlh = nftnl_chain_nlmsg_build_hdr(mnl_nlmsg_batch_current(batch), + cmd, family, type, seq++); + nftnl_chain_nlmsg_build_payload(nlh, chain); + nftnl_chain_free(chain); + mnl_nlmsg_batch_next(batch); + + nftnl_batch_end(mnl_nlmsg_batch_current(batch), seq++); + mnl_nlmsg_batch_next(batch); + + err = send_and_dispatch(nl, mnl_nlmsg_batch_head(batch), + mnl_nlmsg_batch_size(batch), cb_type, cb_val); + + mnl_nlmsg_batch_stop(batch); + return err; +} + +static int rule_cmd(struct mnl_socket *nl, struct nftnl_rule *rule, + uint16_t cmd, uint16_t family, uint16_t type, + enum callback_return_type callback_type, + uint64_t *callback_value) +{ + + char buf[MNL_SOCKET_BUFFER_SIZE]; + struct mnl_nlmsg_batch *batch; + struct nlmsghdr *nlh; + uint32_t seq = 0; + int err; + + debug_netlink_dump_rule(rule); + + batch = mnl_nlmsg_batch_start(buf, sizeof(buf)); + put_batch_headers(mnl_nlmsg_batch_current(batch), + NFNL_MSG_BATCH_BEGIN, seq++); + mnl_nlmsg_batch_next(batch); + + nlh = nftnl_rule_nlmsg_build_hdr(mnl_nlmsg_batch_current(batch), + cmd, family, type, seq++); + nftnl_rule_nlmsg_build_payload(nlh, rule); + mnl_nlmsg_batch_next(batch); + + put_batch_headers(mnl_nlmsg_batch_current(batch), + NFNL_MSG_BATCH_END, seq++); + mnl_nlmsg_batch_next(batch); + + err = send_and_dispatch(nl, mnl_nlmsg_batch_head(batch), + mnl_nlmsg_batch_size(batch), + callback_type, callback_value); + mnl_nlmsg_batch_stop(batch); + + return err; +} + +static int rule_delete(struct firewall_handle *handle) +{ + struct nftnl_rule *rule; + struct mnl_socket *nl; + int err; + + DBG(""); + + rule = nftnl_rule_alloc(); + if (!rule) + return -ENOMEM; + + nftnl_rule_set(rule, NFTNL_RULE_TABLE, CONNMAN_TABLE); + nftnl_rule_set(rule, NFTNL_RULE_CHAIN, handle->chain); + nftnl_rule_set_u64(rule, NFTNL_RULE_HANDLE, handle->handle); + + err = socket_open_and_bind(&nl); + if (err < 0) { + nftnl_rule_free(rule); + return err; + } + + err = rule_cmd(nl, rule, NFT_MSG_DELRULE, NFPROTO_IPV4, + NLM_F_ACK, 0, NULL); + nftnl_rule_free(rule); + mnl_socket_close(nl); + + return err; +} + +struct firewall_context *__connman_firewall_create(void) +{ + struct firewall_context *ctx; + + DBG(""); + + ctx = g_new0(struct firewall_context, 1); + + return ctx; +} + +void __connman_firewall_destroy(struct firewall_context *ctx) +{ + DBG(""); + + g_free(ctx); +} + +static int build_rule_nat(const char *address, unsigned char prefixlen, + const char *interface, struct nftnl_rule **res) +{ + struct nftnl_rule *rule; + struct in_addr ipv4_addr, ipv4_mask; + struct nftnl_expr *expr; + int err; + + /* + * # nft --debug netlink add rule connman nat-postrouting \ + * oifname eth0 ip saddr 10.10.0.0/24 masquerade + * + * ip connman nat-postrouting + * [ meta load oifname => reg 1 ] + * [ cmp eq reg 1 0x30687465 0x00000000 0x00000000 0x00000000 ] + * [ payload load 4b @ network header + 12 => reg 1 ] + * [ bitwise reg 1 = (reg=1 & 0x00ffffff ) ^ 0x00000000 ] + * [ cmp eq reg 1 0x00000a0a ] + * [ masq ] + */ + + rule = nftnl_rule_alloc(); + if (!rule) + return -ENOMEM; + + nftnl_rule_set(rule, NFTNL_RULE_TABLE, CONNMAN_TABLE); + nftnl_rule_set(rule, NFTNL_RULE_CHAIN, CONNMAN_CHAIN_NAT_POST); + + /* family ipv4 */ + nftnl_rule_set_u32(rule, NFTNL_RULE_FAMILY, NFPROTO_IPV4); + + /* oifname */ + expr = nftnl_expr_alloc("meta"); + if (!expr) + goto err; + nftnl_expr_set_u32(expr, NFTNL_EXPR_META_KEY, NFT_META_OIFNAME); + nftnl_expr_set_u32(expr, NFTNL_EXPR_META_DREG, NFT_REG_1); + nftnl_rule_add_expr(rule, expr); + err = add_cmp(rule, NFT_REG_1, NFT_CMP_EQ, interface, + strlen(interface) + 1); + if (err < 0) + goto err; + + /* source */ + ipv4_mask.s_addr = htonl((0xffffffff << (32 - prefixlen)) & 0xffffffff); + ipv4_addr.s_addr = inet_addr(address); + ipv4_addr.s_addr &= ipv4_mask.s_addr; + + err = add_payload(rule, NFT_PAYLOAD_NETWORK_HEADER, NFT_REG_1, + offsetof(struct iphdr, saddr), sizeof(struct in_addr)); + if (err < 0) + goto err; + err = add_bitwise(rule, NFT_REG_1, &ipv4_mask.s_addr, + sizeof(struct in_addr)); + if (err < 0) + goto err; + err = add_cmp(rule, NFT_REG_1, NFT_CMP_EQ, &ipv4_addr.s_addr, + sizeof(struct in_addr)); + if (err < 0) + goto err; + + /* masquerade */ + expr = nftnl_expr_alloc("masq"); + if (!expr) + goto err; + nftnl_rule_add_expr(rule, expr); + + *res = rule; + return 0; + +err: + nftnl_rule_free(rule); + return -ENOMEM; +} + +int __connman_firewall_enable_nat(struct firewall_context *ctx, + char *address, unsigned char prefixlen, + char *interface) +{ + struct mnl_socket *nl; + struct nftnl_rule *rule; + int err; + + DBG("address %s/%d interface %s", address, (int)prefixlen, interface); + + err = socket_open_and_bind(&nl); + if (err < 0) + return err; + + err = build_rule_nat(address, prefixlen, interface, &rule); + if (err) + goto out; + + ctx->rule.chain = CONNMAN_CHAIN_NAT_POST; + err = rule_cmd(nl, rule, NFT_MSG_NEWRULE, NFPROTO_IPV4, + NLM_F_APPEND|NLM_F_CREATE|NLM_F_ACK, + CALLBACK_RETURN_HANDLE, &ctx->rule.handle); + nftnl_rule_free(rule); +out: + mnl_socket_close(nl); + return err; +} + +int __connman_firewall_disable_nat(struct firewall_context *ctx) +{ + return rule_delete(&ctx->rule); +} + +static int build_rule_snat(int index, const char *address, + struct nftnl_rule **res) +{ + struct nftnl_rule *rule; + struct nftnl_expr *expr; + uint32_t snat; + int err; + + /* + * # nft --debug netlink add rule connman nat-postrouting \ + * oif eth0 snat 1.2.3.4 + * ip connman nat-postrouting + * [ meta load oif => reg 1 ] + * [ cmp eq reg 1 0x0000000b ] + * [ immediate reg 1 0x04030201 ] + * [ nat snat ip addr_min reg 1 addr_max reg 0 ] + */ + + rule = nftnl_rule_alloc(); + if (!rule) + return -ENOMEM; + + nftnl_rule_set(rule, NFTNL_RULE_TABLE, CONNMAN_TABLE); + nftnl_rule_set(rule, NFTNL_RULE_CHAIN, CONNMAN_CHAIN_NAT_POST); + + /* IOF */ + expr = nftnl_expr_alloc("meta"); + if (!expr) + goto err; + nftnl_expr_set_u32(expr, NFTNL_EXPR_META_KEY, NFT_META_OIF); + nftnl_expr_set_u32(expr, NFTNL_EXPR_META_DREG, NFT_REG_1); + nftnl_rule_add_expr(rule, expr); + err = add_cmp(rule, NFT_REG_1, NFT_CMP_EQ, &index, sizeof(index)); + if (err < 0) + goto err; + + /* snat */ + expr = nftnl_expr_alloc("immediate"); + if (!expr) + goto err; + snat = inet_addr(address); + nftnl_expr_set_u32(expr, NFTNL_EXPR_IMM_DREG, NFT_REG_1); + nftnl_expr_set(expr, NFTNL_EXPR_IMM_DATA, &snat, sizeof(snat)); + nftnl_rule_add_expr(rule, expr); + + expr = nftnl_expr_alloc("nat"); + if (!expr) + goto err; + nftnl_expr_set_u32(expr, NFTNL_EXPR_NAT_TYPE, NFT_NAT_SNAT); + nftnl_expr_set_u32(expr, NFTNL_EXPR_NAT_FAMILY, NFPROTO_IPV4); + nftnl_expr_set_u32(expr, NFTNL_EXPR_NAT_REG_ADDR_MIN, NFT_REG_1); + nftnl_rule_add_expr(rule, expr); + + *res = rule; + return 0; + +err: + nftnl_rule_free(rule); + return -ENOMEM; +} + +int __connman_firewall_enable_snat(struct firewall_context *ctx, + int index, const char *ifname, const char *addr) +{ + struct nftnl_rule *rule; + struct mnl_socket *nl; + int err; + + DBG(""); + + err = socket_open_and_bind(&nl); + if (err < 0) + return err; + + err = build_rule_snat(index, addr, &rule); + if (err) + goto out; + + ctx->rule.chain = CONNMAN_CHAIN_NAT_POST; + err = rule_cmd(nl, rule, NFT_MSG_NEWRULE, NFPROTO_IPV4, + NLM_F_APPEND|NLM_F_CREATE|NLM_F_ACK, + CALLBACK_RETURN_HANDLE, &ctx->rule.handle); + nftnl_rule_free(rule); +out: + mnl_socket_close(nl); + return err; +} + +int __connman_firewall_disable_snat(struct firewall_context *ctx) +{ + DBG(""); + + return rule_delete(&ctx->rule); +} + +static int build_rule_marking(uid_t uid, uint32_t mark, struct nftnl_rule **res) +{ + struct nftnl_rule *rule; + struct nftnl_expr *expr; + int err; + + /* + * http://wiki.nftables.org/wiki-nftables/index.php/Setting_packet_metainformation + * http://wiki.nftables.org/wiki-nftables/index.php/Matching_packet_metainformation + * + * # nft --debug netlink add rule connman route-output \ + * meta skuid wagi mark set 1234 + * + * ip connman route-output + * [ meta load skuid => reg 1 ] + * [ cmp eq reg 1 0x000003e8 ] + * [ immediate reg 1 0x000004d2 ] + * [ meta set mark with reg 1 ] + */ + + rule = nftnl_rule_alloc(); + if (!rule) + return -ENOMEM; + + nftnl_rule_set(rule, NFTNL_RULE_TABLE, CONNMAN_TABLE); + nftnl_rule_set(rule, NFTNL_RULE_CHAIN, CONNMAN_CHAIN_ROUTE_OUTPUT); + + expr = nftnl_expr_alloc("meta"); + if (!expr) + goto err; + nftnl_expr_set_u32(expr, NFTNL_EXPR_META_KEY, NFT_META_SKUID); + nftnl_expr_set_u32(expr, NFTNL_EXPR_META_DREG, NFT_REG_1); + nftnl_rule_add_expr(rule, expr); + err = add_cmp(rule, NFT_REG_1, NFT_CMP_EQ, &uid, sizeof(uid)); + if (err < 0) + goto err; + + expr = nftnl_expr_alloc("immediate"); + if (!expr) + goto err; + nftnl_expr_set_u32(expr, NFTNL_EXPR_IMM_DREG, NFT_REG_1); + nftnl_expr_set(expr, NFTNL_EXPR_IMM_DATA, &mark, sizeof(mark)); + nftnl_rule_add_expr(rule, expr); + + expr = nftnl_expr_alloc("meta"); + if (!expr) + goto err; + nftnl_expr_set_u32(expr, NFTNL_EXPR_META_KEY, NFT_META_MARK); + nftnl_expr_set_u32(expr, NFTNL_EXPR_META_SREG, NFT_REG_1); + nftnl_rule_add_expr(rule, expr); + + *res = rule; + return 0; + +err: + return -ENOMEM; +} + +static int build_rule_src_ip(const char *src_ip, uint32_t mark, struct nftnl_rule **res) +{ + struct nftnl_rule *rule; + struct nftnl_expr *expr; + int err; + in_addr_t s_addr; + + /* + * # nft --debug netlink add rule connman route-output \ + * ip saddr 192.168.10.31 mark set 1234 + * + * ip connman route-output + * [ payload load 4b @ network header + 12 => reg 1 ] + * [ cmp eq reg 1 0x1f0aa8c0 ] + * [ immediate reg 1 0x000004d2 ] + * [ meta set mark with reg 1 ] + */ + + rule = nftnl_rule_alloc(); + if (!rule) + return -ENOMEM; + + nftnl_rule_set(rule, NFTNL_RULE_TABLE, CONNMAN_TABLE); + nftnl_rule_set(rule, NFTNL_RULE_CHAIN, CONNMAN_CHAIN_ROUTE_OUTPUT); + + /* family ipv4 */ + nftnl_rule_set_u32(rule, NFTNL_RULE_FAMILY, NFPROTO_IPV4); + + /* source IP */ + err = add_payload(rule, NFT_PAYLOAD_NETWORK_HEADER, NFT_REG_1, + offsetof(struct iphdr, saddr), sizeof(struct in_addr)); + if (err < 0) + goto err; + + s_addr = inet_addr(src_ip); + err = add_cmp(rule, NFT_REG_1, NFT_CMP_EQ, &s_addr, sizeof(s_addr)); + if (err < 0) + goto err; + + expr = nftnl_expr_alloc("immediate"); + if (!expr) + goto err; + nftnl_expr_set_u32(expr, NFTNL_EXPR_IMM_DREG, NFT_REG_1); + nftnl_expr_set(expr, NFTNL_EXPR_IMM_DATA, &mark, sizeof(mark)); + nftnl_rule_add_expr(rule, expr); + + expr = nftnl_expr_alloc("meta"); + if (!expr) + goto err; + nftnl_expr_set_u32(expr, NFTNL_EXPR_META_KEY, NFT_META_MARK); + nftnl_expr_set_u32(expr, NFTNL_EXPR_META_SREG, NFT_REG_1); + nftnl_rule_add_expr(rule, expr); + + *res = rule; + return 0; + +err: + return -ENOMEM; +} + +int __connman_firewall_enable_marking(struct firewall_context *ctx, + enum connman_session_id_type id_type, + char *id, const char *src_ip, + uint32_t mark) +{ + struct nftnl_rule *rule; + struct mnl_socket *nl; + struct passwd *pw; + uid_t uid; + int err; + + DBG(""); + + if (id_type == CONNMAN_SESSION_ID_TYPE_UID) { + pw = getpwnam(id); + if (!pw) + return -EINVAL; + uid = pw->pw_uid; + } + else if (!src_ip) + return -ENOTSUP; + + err = socket_open_and_bind(&nl); + if (err < 0) + return err; + + if (id_type == CONNMAN_SESSION_ID_TYPE_UID) { + err = build_rule_marking(uid, mark, &rule); + if (err < 0) + goto out; + + ctx->rule.chain = CONNMAN_CHAIN_ROUTE_OUTPUT; + err = rule_cmd(nl, rule, NFT_MSG_NEWRULE, NFPROTO_IPV4, + NLM_F_APPEND|NLM_F_CREATE|NLM_F_ACK, + CALLBACK_RETURN_HANDLE, &ctx->rule.handle); + + nftnl_rule_free(rule); + } + + if (src_ip) { + err = build_rule_src_ip(src_ip, mark, &rule); + if (err < 0) + goto out; + + ctx->rule.chain = CONNMAN_CHAIN_ROUTE_OUTPUT; + err = rule_cmd(nl, rule, NFT_MSG_NEWRULE, NFPROTO_IPV4, + NLM_F_APPEND|NLM_F_CREATE|NLM_F_ACK, + CALLBACK_RETURN_HANDLE, &ctx->rule.handle); + + nftnl_rule_free(rule); + } +out: + mnl_socket_close(nl); + return err; +} + +int __connman_firewall_disable_marking(struct firewall_context *ctx) +{ + int err; + + DBG(""); + + err = rule_delete(&ctx->rule); + return err; +} + +static struct nftnl_table *build_table(const char *name, uint16_t family) +{ + struct nftnl_table *table; + + table = nftnl_table_alloc(); + if (!table) + return NULL; + + nftnl_table_set_u32(table, NFTNL_TABLE_FAMILY, family); + nftnl_table_set_str(table, NFTNL_TABLE_NAME, name); + + return table; +} + + +static struct nftnl_chain *build_chain(const char *name, const char *table, + const char *type, int hooknum, int prio) +{ + struct nftnl_chain *chain; + + chain = nftnl_chain_alloc(); + if (!chain) + return NULL; + + nftnl_chain_set(chain, NFTNL_CHAIN_TABLE, table); + nftnl_chain_set(chain, NFTNL_CHAIN_NAME, name); + + if (type) + nftnl_chain_set_str(chain, NFTNL_CHAIN_TYPE, type); + + if (hooknum >= 0) + nftnl_chain_set_u32(chain, NFTNL_CHAIN_HOOKNUM, hooknum); + + if (prio >= 0) + nftnl_chain_set_u32(chain, NFTNL_CHAIN_PRIO, prio); + + return chain; +} + +static int create_table_and_chains(struct nftables_info *nft_info) +{ + struct mnl_socket *nl; + struct nftnl_table *table; + struct nftnl_chain *chain; + int err; + + + DBG(""); + + err = socket_open_and_bind(&nl); + if (err < 0) + return err; + + /* + * Add table + * http://wiki.nftables.org/wiki-nftables/index.php/Configuring_tables + */ + + /* + * # nft add table connman + */ + table = build_table(CONNMAN_TABLE, NFPROTO_IPV4); + if (!table) { + err = -ENOMEM; + goto out; + } + + err = table_cmd(nl, table, NFT_MSG_NEWTABLE, NFPROTO_IPV4, + NLM_F_CREATE|NLM_F_ACK); + if (err < 0) + goto out; + + /* + * Add basic chains + * http://wiki.nftables.org/wiki-nftables/index.php/Configuring_chains + */ + + /* + * # nft add chain connman nat-prerouting \ + * { type nat hook prerouting priortiy 0 ; } + */ + chain = build_chain(CONNMAN_CHAIN_NAT_PRE, CONNMAN_TABLE, + "nat", NF_INET_PRE_ROUTING, 0); + if (!chain) { + err = -ENOMEM; + goto out; + } + + err = chain_cmd(nl, chain, NFT_MSG_NEWCHAIN, + NFPROTO_IPV4, NLM_F_CREATE | NLM_F_ACK, + CALLBACK_RETURN_NONE, NULL); + if (err < 0) + goto out; + + /* + * # nft add chain connman nat-postrouting \ + * { type nat hook postrouting priortiy 0 ; } + */ + chain = build_chain(CONNMAN_CHAIN_NAT_POST, CONNMAN_TABLE, + "nat", NF_INET_POST_ROUTING, 0); + if (!chain) { + err = -ENOMEM; + goto out; + } + + err = chain_cmd(nl, chain, NFT_MSG_NEWCHAIN, + NFPROTO_IPV4, NLM_F_CREATE | NLM_F_ACK, + CALLBACK_RETURN_NONE, NULL); + if (err < 0) + goto out; + + /* + * # nft add chain connman route-output \ + * { type route hook output priority 0 ; } + */ + chain = build_chain(CONNMAN_CHAIN_ROUTE_OUTPUT, CONNMAN_TABLE, + "route", NF_INET_LOCAL_OUT, 0); + if (!chain) { + err = -ENOMEM; + goto out; + } + + err = chain_cmd(nl, chain, NFT_MSG_NEWCHAIN, + NFPROTO_IPV4, NLM_F_CREATE | NLM_F_ACK, + CALLBACK_RETURN_NONE, NULL); + if (err < 0) + goto out; + +out: + if (err) + connman_warn("Failed to create basic chains: %s", + strerror(-err)); + mnl_socket_close(nl); + return err; +} + +static int cleanup_table_and_chains(void) +{ + struct nftnl_table *table; + struct mnl_socket *nl; + int err; + + DBG(""); + + err = socket_open_and_bind(&nl); + if (err < 0) + return -ENOMEM; + + /* + * Cleanup everythying in one go. There is little point in + * step-by-step removal of rules and chains if you can get it + * as simple as this. + */ + /* + * # nft delete table connman + */ + table = build_table(CONNMAN_TABLE, NFPROTO_IPV4); + err = table_cmd(nl, table, NFT_MSG_DELTABLE, NFPROTO_IPV4, NLM_F_ACK); + + mnl_socket_close(nl); + return err; +} + +int __connman_firewall_init(void) +{ + int err; + + DBG(""); + + if (getenv("CONNMAN_NFTABLES_DEBUG")) + debug_enabled = true; + + /* + * EAFNOSUPPORT is return whenever the nf_tables_ipv4 hasn't been + * loaded yet. ENOENT is return in case the table is missing. + */ + err = cleanup_table_and_chains(); + if (err < 0 && (err != EAFNOSUPPORT && err != -ENOENT)) { + connman_warn("initializing nftable failed with '%s' %d. Check if kernel module nf_tables_ipv4 is missing\n", + strerror(-err), err); + return err; + } + + nft_info = g_new0(struct nftables_info, 1); + err = create_table_and_chains(nft_info); + if (err) { + g_free(nft_info); + nft_info = NULL; + } + + return err; +} + +void __connman_firewall_cleanup(void) +{ + int err; + + DBG(""); + + err = cleanup_table_and_chains(); + if (err < 0) + connman_warn("cleanup table and chains failed with '%s' %d\n", + strerror(-err), err); + + g_free(nft_info); + nft_info = NULL; +} @@ -1307,13 +1307,12 @@ static gboolean rs_timeout_cb(gpointer user_data) return FALSE; } -static int icmpv6_recv(int fd, gpointer user_data) +static int icmpv6_recv(int fd, struct xs_cb_data *data) { struct msghdr mhdr; struct iovec iov; unsigned char chdr[CMSG_BUF_LEN]; unsigned char buf[1540]; - struct xs_cb_data *data = user_data; struct nd_router_advert *hdr; struct sockaddr_in6 saddr; ssize_t len; @@ -1335,7 +1334,6 @@ static int icmpv6_recv(int fd, gpointer user_data) len = recvmsg(fd, &mhdr, 0); if (len < 0) { cb(NULL, 0, data->user_data); - xs_cleanup(data); return -errno; } @@ -1377,7 +1375,6 @@ static int icmpv6_recv(int fd, gpointer user_data) return 0; cb(hdr, len, data->user_data); - xs_cleanup(data); return len; } @@ -1385,18 +1382,21 @@ static int icmpv6_recv(int fd, gpointer user_data) static gboolean icmpv6_event(GIOChannel *chan, GIOCondition cond, gpointer data) { int fd, ret; + struct xs_cb_data *xs_data = data; DBG(""); if (cond & (G_IO_NVAL | G_IO_HUP | G_IO_ERR)) - return FALSE; + goto cleanup; fd = g_io_channel_unix_get_fd(chan); - ret = icmpv6_recv(fd, data); + ret = icmpv6_recv(fd, xs_data); if (ret == 0) return TRUE; - return FALSE; +cleanup: + xs_cleanup(xs_data); + return TRUE; } /* Adapted from RFC 1071 "C" Implementation Example */ @@ -1759,13 +1759,12 @@ void __connman_inet_ipv6_stop_recv_rs(void *context) xs_cleanup(context); } -static int icmpv6_rs_recv(int fd, gpointer user_data) +static int icmpv6_rs_recv(int fd, struct xs_cb_data *data) { struct msghdr mhdr; struct iovec iov; unsigned char chdr[CMSG_BUF_LEN]; unsigned char buf[1540]; - struct xs_cb_data *data = user_data; struct nd_router_solicit *hdr; struct sockaddr_in6 saddr; ssize_t len; @@ -1804,17 +1803,20 @@ static gboolean icmpv6_rs_event(GIOChannel *chan, GIOCondition cond, gpointer data) { int fd, ret; + struct xs_cb_data *xs_data = data; DBG(""); if (cond & (G_IO_NVAL | G_IO_HUP | G_IO_ERR)) - return FALSE; + goto cleanup; fd = g_io_channel_unix_get_fd(chan); - ret = icmpv6_rs_recv(fd, data); + ret = icmpv6_rs_recv(fd, xs_data); if (ret == 0) return TRUE; +cleanup: + xs_data->watch_id = 0; return FALSE; } @@ -1889,13 +1891,12 @@ static gboolean ns_timeout_cb(gpointer user_data) return FALSE; } -static int icmpv6_nd_recv(int fd, gpointer user_data) +static int icmpv6_nd_recv(int fd, struct xs_cb_data *data) { struct msghdr mhdr; struct iovec iov; unsigned char chdr[CMSG_BUF_LEN]; unsigned char buf[1540]; - struct xs_cb_data *data = user_data; struct nd_neighbor_advert *hdr; struct sockaddr_in6 saddr; ssize_t len; @@ -1917,7 +1918,6 @@ static int icmpv6_nd_recv(int fd, gpointer user_data) len = recvmsg(fd, &mhdr, 0); if (len < 0) { cb(NULL, 0, &data->addr.sin6_addr, data->user_data); - xs_cleanup(data); return -errno; } @@ -1936,7 +1936,6 @@ static int icmpv6_nd_recv(int fd, gpointer user_data) return 0; cb(hdr, len, &data->addr.sin6_addr, data->user_data); - xs_cleanup(data); return len; } @@ -1945,18 +1944,21 @@ static gboolean icmpv6_nd_event(GIOChannel *chan, GIOCondition cond, gpointer data) { int fd, ret; + struct xs_cb_data *xs_data = data; DBG(""); if (cond & (G_IO_NVAL | G_IO_HUP | G_IO_ERR)) - return FALSE; + goto cleanup; fd = g_io_channel_unix_get_fd(chan); - ret = icmpv6_nd_recv(fd, data); + ret = icmpv6_nd_recv(fd, xs_data); if (ret == 0) return TRUE; - return FALSE; +cleanup: + xs_cleanup(xs_data); + return TRUE; } int __connman_inet_ipv6_do_dad(int index, int timeout_ms, @@ -2280,9 +2282,8 @@ static gboolean inet_rtnl_timeout_cb(gpointer user_data) return FALSE; } -static int inet_rtnl_recv(GIOChannel *chan, gpointer user_data) +static int inet_rtnl_recv(GIOChannel *chan, struct inet_rtnl_cb_data *rtnl_data) { - struct inet_rtnl_cb_data *rtnl_data = user_data; struct __connman_inet_rtnl_handle *rth = rtnl_data->rtnl; struct nlmsghdr *h = NULL; struct sockaddr_nl nladdr; @@ -2364,17 +2365,20 @@ static gboolean inet_rtnl_event(GIOChannel *chan, GIOCondition cond, gpointer user_data) { int ret; + struct inet_rtnl_cb_data *rtnl_data = user_data; DBG(""); if (cond & (G_IO_NVAL | G_IO_HUP | G_IO_ERR)) - return FALSE; + goto cleanup; - ret = inet_rtnl_recv(chan, user_data); - if (ret != 0) + ret = inet_rtnl_recv(chan, rtnl_data); + if (ret == 0) return TRUE; - return FALSE; +cleanup: + inet_rtnl_cleanup(rtnl_data); + return TRUE; } int __connman_inet_rtnl_talk(struct __connman_inet_rtnl_handle *rtnl, @@ -2383,13 +2387,12 @@ int __connman_inet_rtnl_talk(struct __connman_inet_rtnl_handle *rtnl, { struct sockaddr_nl nladdr; struct inet_rtnl_cb_data *data; - unsigned seq; int err; memset(&nladdr, 0, sizeof(nladdr)); nladdr.nl_family = AF_NETLINK; - n->nlmsg_seq = seq = ++rtnl->seq; + n->nlmsg_seq = ++rtnl->seq; if (callback) { data = g_try_malloc0(sizeof(struct inet_rtnl_cb_data)); @@ -2403,7 +2406,6 @@ int __connman_inet_rtnl_talk(struct __connman_inet_rtnl_handle *rtnl, inet_rtnl_timeout_cb, data); data->channel = g_io_channel_unix_new(rtnl->fd); - g_io_channel_set_close_on_unref(data->channel, TRUE); g_io_channel_set_encoding(data->channel, NULL, NULL); g_io_channel_set_buffered(data->channel, FALSE); @@ -2747,7 +2749,7 @@ char **__connman_inet_get_running_interfaces(void) result = g_try_realloc(result, (count + 1) * sizeof(char *)); if (!result) { g_free(prev_result); - goto error; + return NULL; } } @@ -3058,3 +3060,302 @@ out: close(sk); return ret; } + +static int get_nfs_server_ip(const char *cmdline_file, const char *pnp_file, + struct in_addr *addr) +{ + char *s, *nfsargs; + size_t len; + char addrstr[INET_ADDRSTRLEN]; + struct in_addr taddr; + GError *error = NULL; + char *cmdline = NULL; + char *pnp = NULL; + char **args = NULL; + char **pnpent = NULL; + char **pp = NULL; + int err = -1; + + if (!cmdline_file) + cmdline_file = "/proc/cmdline"; + if (!pnp_file) + pnp_file = "/proc/net/pnp"; + if (!addr) + addr = &taddr; + addr->s_addr = INADDR_NONE; + + if (!g_file_get_contents(cmdline_file, &cmdline, NULL, &error)) { + connman_error("%s: Cannot read %s %s\n", __func__, + cmdline_file, error->message); + goto out; + } + + if (g_file_test(pnp_file, G_FILE_TEST_EXISTS)) { + if (!g_file_get_contents(pnp_file, &pnp, NULL, &error)) { + connman_error("%s: Cannot read %s %s\n", __func__, + pnp_file, error->message); + goto out; + } + } else { + connman_error("%s: File %s doesn't exist\n", __func__, pnp_file); + goto out; + } + + len = strlen(cmdline); + if (len <= 1) { + /* too short */ + goto out; + } + /* remove newline */ + if (cmdline[len - 1] == '\n') + cmdline[--len] = '\0'; + + /* split in arguments (seperated by space) */ + args = g_strsplit(cmdline, " ", 0); + if (!args) { + connman_error("%s: Cannot split cmdline \"%s\"\n", __func__, + cmdline); + goto out; + } + + /* split in entries (by newlines) */ + pnpent = g_strsplit(pnp, "\n", 0); + if (!pnpent) { + connman_error("%s: Cannot split pnp at file \"%s\"\n", __func__, + pnp_file); + goto out; + } + + /* first find root argument */ + for (pp = args; *pp; pp++) { + if (!strcmp(*pp, "root=/dev/nfs")) + break; + } + /* no rootnfs found */ + if (!*pp) + goto out; + + /* locate nfsroot argument */ + for (pp = args; *pp; pp++) { + if (!strncmp(*pp, "nfsroot=", strlen("nfsroot="))) + break; + } + /* no nfsroot argument found */ + if (!*pp) + goto out; + + /* determine if nfsroot server is provided */ + nfsargs = strchr(*pp, '='); + if (!nfsargs) + goto out; + nfsargs++; + + /* find whether serverip is present */ + s = strchr(nfsargs, ':'); + if (s) { + len = s - nfsargs; + s = nfsargs; + } else { + /* no serverip, use bootserver */ + for (pp = pnpent; *pp; pp++) { + if (!strncmp(*pp, "bootserver ", strlen("bootserver "))) + break; + } + /* no bootserver found */ + if (!*pp) + goto out; + s = *pp + strlen("bootserver "); + len = strlen(s); + } + + /* copy to addr string buffer */ + if (len >= sizeof(addrstr)) { + connman_error("%s: Bad server\n", __func__); + goto out; + } + memcpy(addrstr, s, len); + addrstr[len] = '\0'; + + err = inet_pton(AF_INET, addrstr, addr); + if (err <= 0) { + connman_error("%s: Cannot convert to numeric addr \"%s\"\n", + __func__, addrstr); + err = -1; + goto out; + } + + /* all done */ + err = 0; +out: + g_strfreev(pnpent); + g_strfreev(args); + if (error) + g_error_free(error); + g_free(pnp); + g_free(cmdline); + + return err; +} + +/* get interface out of which peer is reachable (IPv4 only) */ +static int get_peer_iface(struct in_addr *addr, char *ifname) +{ + struct ifaddrs *ifaddr, *ifa; + struct sockaddr_in saddr, *ifsaddr; + socklen_t socklen; + int s; + int err = -1; + + /* Obtain address(es) matching host/port */ + err = getifaddrs(&ifaddr); + if (err < 0) { + connman_error("%s: getifaddrs() failed %d (%s)\n", + __func__, errno, strerror(errno)); + return -1; + } + + s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); + if (s < 0) { + connman_error("%s: socket() failed %d (%s)\n", + __func__, errno, strerror(errno)); + return -1; + } + + memset(&saddr, 0, sizeof(saddr)); + saddr.sin_family = AF_INET; + saddr.sin_port = 0; /* any port */ + saddr.sin_addr = *addr; + + /* no need to bind, connect will select iface */ + err = connect(s, (struct sockaddr *)&saddr, sizeof(struct sockaddr_in)); + if (err < 0) { + connman_error("%s: connect() failed: %d (%s)\n", + __func__, errno, strerror(errno)); + goto out; + } + + socklen = sizeof(saddr); + err = getsockname(s, (struct sockaddr *)&saddr, &socklen); + if (err < 0) { + connman_error("%s: getsockname() failed: %d (%s)\n", + __func__, errno, strerror(errno)); + goto out; + } + + err = -1; + for (ifa = ifaddr; ifa; ifa = ifa->ifa_next) { + if (!ifa->ifa_addr) + continue; + + /* only IPv4 address */ + if (ifa->ifa_addr->sa_family != AF_INET) + continue; + + ifsaddr = (struct sockaddr_in *)ifa->ifa_addr; + + /* match address? */ + if (ifsaddr->sin_addr.s_addr == saddr.sin_addr.s_addr) + break; + } + + if (ifa) { + err = 0; + if (ifname) + strcpy(ifname, ifa->ifa_name); + } + +out: + close(s); + + freeifaddrs(ifaddr); + + return err; +} + +bool __connman_inet_isrootnfs_device(const char *devname) +{ + struct in_addr addr; + char ifname[IFNAMSIZ]; + + return get_nfs_server_ip(NULL, NULL, &addr) == 0 && + get_peer_iface(&addr, ifname) == 0 && + strcmp(devname, ifname) == 0; +} + +char **__connman_inet_get_pnp_nameservers(const char *pnp_file) +{ + char **pp; + char *s; + int pass, count; + GError *error = NULL; + char *pnp = NULL; + char **pnpent = NULL; + char **nameservers = NULL; + + if (!pnp_file) + pnp_file = "/proc/net/pnp"; + + if (!g_file_get_contents(pnp_file, &pnp, NULL, &error)) { + connman_error("%s: Cannot read %s %s\n", __func__, + pnp_file, error->message); + goto out; + } + + /* split in entries (by newlines) */ + pnpent = g_strsplit(pnp, "\n", 0); + if (!pnpent) { + connman_error("%s: Cannot split pnp \"%s\"\n", __func__, + pnp_file); + goto out; + } + + /* + * Perform two passes to retreive a char ** array of + * nameservers that are not 0.0.0.0 + * + * The first pass counts them, the second fills in the + * array. + */ + count = 0; + nameservers = NULL; + for (pass = 1; pass <= 2; pass++) { + + /* at the start of the second pass allocate */ + if (pass == 2) + nameservers = g_new(char *, count + 1); + + count = 0; + for (pp = pnpent; *pp; pp++) { + /* match 'nameserver ' at the start of each line */ + if (strncmp(*pp, "nameserver ", strlen("nameserver "))) + continue; + + /* compare it against 0.0.0.0 */ + s = *pp + strlen("nameserver "); + if (!strcmp(s, "0.0.0.0")) + continue; + + /* on second pass fill in array */ + if (pass == 2) + nameservers[count] = g_strdup(s); + count++; + } + + /* no nameservers? */ + if (count == 0) + goto out; + + /* and terminate char ** array with NULL */ + if (pass == 2) + nameservers[count] = NULL; + + } + +out: + g_strfreev(pnpent); + g_free(pnp); + if (error) + g_error_free(error); + + return nameservers; +} diff --git a/src/ipconfig.c b/src/ipconfig.c index ff1909d3..d94b8734 100755 --- a/src/ipconfig.c +++ b/src/ipconfig.c @@ -48,7 +48,6 @@ struct connman_ipconfig { const struct connman_ipconfig_ops *ops; void *ops_data; - bool enabled; enum connman_ipconfig_method method; struct connman_ipaddress *address; struct connman_ipaddress *system; @@ -413,40 +412,6 @@ static void free_ipdevice(gpointer data) g_free(ipdevice); } -static void __connman_ipconfig_lower_up(struct connman_ipdevice *ipdevice) -{ - DBG("ipconfig ipv4 %p ipv6 %p", ipdevice->config_ipv4, - ipdevice->config_ipv6); -#if defined TIZEN_EXT - if (ipdevice->config_ipv6 != NULL && - ipdevice->config_ipv6->enabled == TRUE) - return; - - char *ifname = connman_inet_ifname(ipdevice->index); - - if (__connman_device_isfiltered(ifname) == FALSE) { - ipdevice->ipv6_enabled = get_ipv6_state(ifname); - set_ipv6_state(ifname, FALSE); - } - g_free(ifname); -#endif -} - -static void __connman_ipconfig_lower_down(struct connman_ipdevice *ipdevice) -{ - DBG("ipconfig ipv4 %p ipv6 %p", ipdevice->config_ipv4, - ipdevice->config_ipv6); - - if (ipdevice->config_ipv4) - connman_inet_clear_address(ipdevice->index, - ipdevice->config_ipv4->address); - - if (ipdevice->config_ipv6) - connman_inet_clear_ipv6_address(ipdevice->index, - ipdevice->config_ipv6->address->local, - ipdevice->config_ipv6->address->prefixlen); -} - static void update_stats(struct connman_ipdevice *ipdevice, const char *ifname, struct rtnl_link_stats *stats) { @@ -606,11 +571,6 @@ update: g_list_free(ipconfig_copy); - if (lower_up) - __connman_ipconfig_lower_up(ipdevice); - if (lower_down) - __connman_ipconfig_lower_down(ipdevice); - out: g_free(ifname); } @@ -651,8 +611,6 @@ void __connman_ipconfig_dellink(int index, struct rtnl_link_stats *stats) g_free(ifname); - __connman_ipconfig_lower_down(ipdevice); - g_hash_table_remove(ipdevice_hash, GINT_TO_POINTER(index)); } @@ -1178,8 +1136,6 @@ static struct connman_ipconfig *create_ipv6config(int index) struct connman_ipconfig *ipv6config; struct connman_ipdevice *ipdevice; - DBG("index %d", index); - ipv6config = g_try_new0(struct connman_ipconfig, 1); if (!ipv6config) return NULL; @@ -1187,7 +1143,6 @@ static struct connman_ipconfig *create_ipv6config(int index) ipv6config->refcount = 1; ipv6config->index = index; - ipv6config->enabled = false; ipv6config->type = CONNMAN_IPCONFIG_TYPE_IPV6; if (!is_ipv6_supported) @@ -1210,7 +1165,7 @@ static struct connman_ipconfig *create_ipv6config(int index) ipv6config->system = connman_ipaddress_alloc(AF_INET6); - DBG("ipconfig %p method %s", ipv6config, + DBG("ipconfig %p index %d method %s", ipv6config, index, __connman_ipconfig_method2string(ipv6config->method)); return ipv6config; @@ -1231,8 +1186,6 @@ struct connman_ipconfig *__connman_ipconfig_create(int index, if (type == CONNMAN_IPCONFIG_TYPE_IPV6) return create_ipv6config(index); - DBG("index %d", index); - ipconfig = g_try_new0(struct connman_ipconfig, 1); if (!ipconfig) return NULL; @@ -1240,7 +1193,6 @@ struct connman_ipconfig *__connman_ipconfig_create(int index, ipconfig->refcount = 1; ipconfig->index = index; - ipconfig->enabled = false; ipconfig->type = CONNMAN_IPCONFIG_TYPE_IPV4; ipconfig->address = connman_ipaddress_alloc(AF_INET); @@ -1251,7 +1203,7 @@ struct connman_ipconfig *__connman_ipconfig_create(int index, ipconfig->system = connman_ipaddress_alloc(AF_INET); - DBG("ipconfig %p", ipconfig); + DBG("ipconfig %p index %d", ipconfig, index); return ipconfig; } @@ -1384,8 +1336,6 @@ enum connman_ipconfig_method __connman_ipconfig_get_method( int __connman_ipconfig_address_add(struct connman_ipconfig *ipconfig) { - DBG(""); - switch (ipconfig->method) { case CONNMAN_IPCONFIG_METHOD_UNKNOWN: case CONNMAN_IPCONFIG_METHOD_OFF: @@ -1409,13 +1359,9 @@ int __connman_ipconfig_address_remove(struct connman_ipconfig *ipconfig) { int err; - DBG(""); - if (!ipconfig) return 0; - DBG("method %d", ipconfig->method); - switch (ipconfig->method) { case CONNMAN_IPCONFIG_METHOD_UNKNOWN: case CONNMAN_IPCONFIG_METHOD_OFF: @@ -1437,8 +1383,6 @@ int __connman_ipconfig_address_unset(struct connman_ipconfig *ipconfig) { int err; - DBG(""); - if (!ipconfig) return 0; @@ -1478,8 +1422,6 @@ int __connman_ipconfig_set_proxy_autoconfig(struct connman_ipconfig *ipconfig, { struct connman_ipdevice *ipdevice; - DBG("ipconfig %p", ipconfig); - if (!ipconfig || ipconfig->index < 0) return -ENODEV; @@ -1498,8 +1440,6 @@ const char *__connman_ipconfig_get_proxy_autoconfig(struct connman_ipconfig *ipc { struct connman_ipdevice *ipdevice; - DBG("ipconfig %p", ipconfig); - if (!ipconfig || ipconfig->index < 0) return NULL; @@ -1652,8 +1592,6 @@ int __connman_ipconfig_enable(struct connman_ipconfig *ipconfig) } else return -EINVAL; - ipconfig->enabled = true; - if (type == CONNMAN_IPCONFIG_TYPE_IPV4 && ipdevice->config_ipv4) { ipconfig_list = g_list_remove(ipconfig_list, @@ -1728,8 +1666,6 @@ int __connman_ipconfig_disable(struct connman_ipconfig *ipconfig) if (!ipdevice->config_ipv4 && !ipdevice->config_ipv6) return -EINVAL; - ipconfig->enabled = false; - if (ipdevice->config_ipv4 == ipconfig) { ipconfig_list = g_list_remove(ipconfig_list, ipconfig); @@ -1843,8 +1779,6 @@ int __connman_ipconfig_ipv6_set_privacy(struct connman_ipconfig *ipconfig, if (!ipconfig) return -EINVAL; - DBG("ipconfig %p privacy %s", ipconfig, value); - privacy = string2privacy(value); ipconfig->ipv6_privacy_config = privacy; @@ -1859,9 +1793,6 @@ void __connman_ipconfig_append_ipv4(struct connman_ipconfig *ipconfig, { struct connman_ipaddress *append_addr = NULL; const char *str; -#if defined TIZEN_EXT - DBG(""); -#endif if (ipconfig->type != CONNMAN_IPCONFIG_TYPE_IPV4) return; @@ -1875,13 +1806,13 @@ void __connman_ipconfig_append_ipv4(struct connman_ipconfig *ipconfig, switch (ipconfig->method) { case CONNMAN_IPCONFIG_METHOD_UNKNOWN: case CONNMAN_IPCONFIG_METHOD_OFF: - case CONNMAN_IPCONFIG_METHOD_AUTO: return; case CONNMAN_IPCONFIG_METHOD_FIXED: append_addr = ipconfig->address; break; + case CONNMAN_IPCONFIG_METHOD_AUTO: case CONNMAN_IPCONFIG_METHOD_MANUAL: case CONNMAN_IPCONFIG_METHOD_DHCP: append_addr = ipconfig->system; @@ -1936,9 +1867,6 @@ void __connman_ipconfig_append_ipv6(struct connman_ipconfig *ipconfig, { struct connman_ipaddress *append_addr = NULL; const char *str, *privacy; -#if defined TIZEN_EXT - DBG(""); -#endif if (ipconfig->type != CONNMAN_IPCONFIG_TYPE_IPV6) return; @@ -2000,9 +1928,6 @@ void __connman_ipconfig_append_ipv6config(struct connman_ipconfig *ipconfig, DBusMessageIter *iter) { const char *str, *privacy; -#if !defined TIZEN_EXT - DBG(""); -#endif str = __connman_ipconfig_method2string(ipconfig->method); if (!str) @@ -2045,9 +1970,6 @@ void __connman_ipconfig_append_ipv4config(struct connman_ipconfig *ipconfig, DBusMessageIter *iter) { const char *str; -#if !defined TIZEN_EXT - DBG(""); -#endif str = __connman_ipconfig_method2string(ipconfig->method); if (!str) @@ -2099,8 +2021,6 @@ int __connman_ipconfig_set_config(struct connman_ipconfig *ipconfig, DBusMessageIter dict; int type = -1; - DBG("ipconfig %p", ipconfig); - if (dbus_message_iter_get_arg_type(array) != DBUS_TYPE_ARRAY) return -EINVAL; @@ -2375,6 +2295,20 @@ int __connman_ipconfig_load(struct connman_ipconfig *ipconfig, g_free(key); break; + case CONNMAN_IPCONFIG_METHOD_AUTO: + + if (ipconfig->type != CONNMAN_IPCONFIG_TYPE_IPV4) + break; + + /* + * If the last used method for IPv4 was AUTO then we + * try first DHCP. We will try also to use the last + * used DHCP address, if exits. + */ + __connman_ipconfig_set_method(ipconfig, + CONNMAN_IPCONFIG_METHOD_DHCP); + /* fall through */ + case CONNMAN_IPCONFIG_METHOD_DHCP: key = g_strdup_printf("%sDHCP.LastAddress", prefix); @@ -2386,9 +2320,6 @@ int __connman_ipconfig_load(struct connman_ipconfig *ipconfig, g_free(key); break; - - case CONNMAN_IPCONFIG_METHOD_AUTO: - break; } return 0; @@ -2488,6 +2419,8 @@ int __connman_ipconfig_save(struct connman_ipconfig *ipconfig, if (ipconfig->address->gateway) g_key_file_set_string(keyfile, identifier, key, ipconfig->address->gateway); + else + g_key_file_remove_key(keyfile, identifier, key, NULL); g_free(key); return 0; diff --git a/src/ippool.c b/src/ippool.c index bb8568d9..cea1dccd 100755 --- a/src/ippool.c +++ b/src/ippool.c @@ -58,7 +58,6 @@ struct connman_ippool { }; GSList *allocated_blocks; -GHashTable *pool_hash; static uint32_t last_block; static uint32_t block_16_bits; @@ -90,7 +89,18 @@ void __connman_ippool_unref_debug(struct connman_ippool *pool, if (__sync_fetch_and_sub(&pool->refcount, 1) != 1) return; - g_hash_table_remove(pool_hash, pool); + if (pool->info) { + allocated_blocks = g_slist_remove(allocated_blocks, pool->info); + g_free(pool->info); + } + + g_free(pool->gateway); + g_free(pool->broadcast); + g_free(pool->start_ip); + g_free(pool->end_ip); + g_free(pool->subnet_mask); + + g_free(pool); } static char *get_ip(uint32_t ip) @@ -181,10 +191,10 @@ static uint32_t get_free_block(unsigned int size) * To only thing we have to make sure is that we terminated if * there is no block left. */ - if (last_block == 0) - block = block_16_bits; + if (last_block) + block = last_block; else - block = next_block(last_block); + block = block_16_bits; do { collision = false; @@ -393,7 +403,6 @@ struct connman_ippool *__connman_ippool_create(int index, pool->end_ip = get_ip(block + start + range); allocated_blocks = g_slist_prepend(allocated_blocks, info); - g_hash_table_insert(pool_hash, pool, pool); return pool; } @@ -423,24 +432,6 @@ const char *__connman_ippool_get_subnet_mask(struct connman_ippool *pool) return pool->subnet_mask; } -static void pool_free(gpointer data) -{ - struct connman_ippool *pool = data; - - if (pool->info) { - allocated_blocks = g_slist_remove(allocated_blocks, pool->info); - g_free(pool->info); - } - - g_free(pool->gateway); - g_free(pool->broadcast); - g_free(pool->start_ip); - g_free(pool->end_ip); - g_free(pool->subnet_mask); - - g_free(pool); -} - int __connman_ippool_init(void) { DBG(""); @@ -450,9 +441,6 @@ int __connman_ippool_init(void) block_24_bits = ntohl(inet_addr("10.0.0.0")); subnet_mask_24 = ntohl(inet_addr("255.255.255.0")); - pool_hash = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, - pool_free); - return 0; } @@ -460,9 +448,6 @@ void __connman_ippool_cleanup(void) { DBG(""); - g_hash_table_destroy(pool_hash); - pool_hash = NULL; - g_slist_free_full(allocated_blocks, g_free); last_block = 0; allocated_blocks = NULL; diff --git a/src/iptables.c b/src/iptables.c index a5774ada..aaddf9d6 100755 --- a/src/iptables.c +++ b/src/iptables.c @@ -31,6 +31,7 @@ #include <sys/errno.h> #include <sys/socket.h> #include <xtables.h> +#include <inttypes.h> #include <linux/netfilter_ipv4/ip_tables.h> @@ -154,6 +155,7 @@ struct error_target { struct connman_iptables_entry { int offset; int builtin; + int counter_idx; struct ipt_entry *entry; }; @@ -251,8 +253,9 @@ static int print_entry(struct ipt_entry *entry, int builtin, unsigned int hook, { iterate_entries_cb_t cb = user_data; - DBG("entry %p hook %d offset %d size %d", entry, hook, - offset, entry->next_offset); + DBG("entry %p hook %u offset %u size %u packets %"PRIu64" bytes %"PRIu64, + entry, hook, offset, (unsigned int) entry->next_offset, + (uint64_t) entry->counters.pcnt, (uint64_t) entry->counters.bcnt); return cb(entry, builtin, hook, size, offset, NULL); } @@ -460,7 +463,7 @@ static void update_targets_reference(struct connman_iptables *table, static int iptables_add_entry(struct connman_iptables *table, struct ipt_entry *entry, GList *before, - int builtin) + int builtin, int counter_idx) { struct connman_iptables_entry *e, *entry_before; @@ -473,6 +476,7 @@ static int iptables_add_entry(struct connman_iptables *table, e->entry = entry; e->builtin = builtin; + e->counter_idx = counter_idx; table->entries = g_list_insert_before(table->entries, before, e); table->num_entries++; @@ -620,7 +624,7 @@ static int iptables_add_chain(struct connman_iptables *table, error->t.u.user.target_size = ALIGN(sizeof(struct error_target)); g_stpcpy(error->error, name); - if (iptables_add_entry(table, entry_head, last, -1) < 0) + if (iptables_add_entry(table, entry_head, last, -1, -1) < 0) goto err_head; /* tail entry */ @@ -638,7 +642,7 @@ static int iptables_add_chain(struct connman_iptables *table, ALIGN(sizeof(struct ipt_standard_target)); standard->verdict = XT_RETURN; - if (iptables_add_entry(table, entry_return, last, -1) < 0) + if (iptables_add_entry(table, entry_return, last, -1, -1) < 0) goto err; return 0; @@ -826,7 +830,7 @@ static int iptables_append_rule(struct connman_iptables *table, if (!new_entry) return -EINVAL; - ret = iptables_add_entry(table, new_entry, chain_tail->prev, builtin); + ret = iptables_add_entry(table, new_entry, chain_tail->prev, builtin, -1); if (ret < 0) g_free(new_entry); @@ -857,7 +861,7 @@ static int iptables_insert_rule(struct connman_iptables *table, if (builtin == -1) chain_head = chain_head->next; - ret = iptables_add_entry(table, new_entry, chain_head, builtin); + ret = iptables_add_entry(table, new_entry, chain_head, builtin, -1); if (ret < 0) g_free(new_entry); @@ -1128,6 +1132,8 @@ static int iptables_change_policy(struct connman_iptables *table, target = ipt_get_target(entry->entry); t = (struct xt_standard_target *)target; + if (t->verdict != verdict) + entry->counter_idx = -1; t->verdict = verdict; return 0; @@ -1405,6 +1411,19 @@ static int iptables_replace(struct connman_iptables *table, return 0; } +static int iptables_add_counters(struct connman_iptables *table, + struct xt_counters_info *c) +{ + int err; + + err = setsockopt(table->ipt_sock, IPPROTO_IP, IPT_SO_SET_ADD_COUNTERS, c, + sizeof(*c) + sizeof(struct xt_counters) * c->num_counters); + if (err < 0) + return -errno; + + return 0; +} + static int add_entry(struct ipt_entry *entry, int builtin, unsigned int hook, size_t size, unsigned offset, void *user_data) { @@ -1417,7 +1436,8 @@ static int add_entry(struct ipt_entry *entry, int builtin, unsigned int hook, memcpy(new_entry, entry, entry->next_offset); - return iptables_add_entry(table, new_entry, NULL, builtin); + return iptables_add_entry(table, new_entry, NULL, builtin, + table->num_entries); } static void table_cleanup(struct connman_iptables *table) @@ -1748,6 +1768,7 @@ struct parse_context { struct xtables_target *xt_t; GList *xt_m; struct xtables_rule_match *xt_rm; + int proto; }; static int prepare_getopt_args(const char *str, struct parse_context *ctx) @@ -1787,6 +1808,14 @@ static int parse_xt_modules(int c, bool invert, { struct xtables_match *m; struct xtables_rule_match *rm; + struct ipt_entry fw; + + memset(&fw, 0, sizeof(fw)); + + /* The SNAT parser wants to know the protocol. */ + if (ctx->proto == 0) + ctx->proto = IPPROTO_IP; + fw.ip.proto = ctx->proto; for (rm = ctx->xt_rm; rm; rm = rm->next) { if (rm->completed != 0) @@ -1802,7 +1831,7 @@ static int parse_xt_modules(int c, bool invert, + XT_OPTION_OFFSET_SCALE) continue; - xtables_option_mpcall(c, ctx->argv, invert, m, NULL); + xtables_option_mpcall(c, ctx->argv, invert, m, &fw); } if (!ctx->xt_t) @@ -1816,7 +1845,7 @@ static int parse_xt_modules(int c, bool invert, + XT_OPTION_OFFSET_SCALE) return 0; - xtables_option_tpcall(c, ctx->argv, invert, ctx->xt_t, NULL); + xtables_option_tpcall(c, ctx->argv, invert, ctx->xt_t, &fw); return 0; } @@ -1991,6 +2020,9 @@ static int parse_rule_spec(struct connman_iptables *table, ctx->xt_m = g_list_append(ctx->xt_m, xt_m); break; + case 'p': + ctx->proto = xtables_parse_protocol(optarg); + break; case 'j': /* Target */ ctx->xt_t = prepare_target(table, optarg); @@ -2306,6 +2338,10 @@ int __connman_iptables_commit(const char *table_name) struct connman_iptables *table; struct ipt_replace *repl; int err; + struct xt_counters_info *counters; + struct connman_iptables_entry *e; + GList *list; + unsigned int cnt; DBG("%s", table_name); @@ -2314,25 +2350,44 @@ int __connman_iptables_commit(const char *table_name) return -EINVAL; repl = iptables_blob(table); -#if defined TIZEN_EXT if(!repl) return -ENOMEM; -#endif if (debug_enabled) dump_ipt_replace(repl); err = iptables_replace(table, repl); - g_free(repl->counters); - g_free(repl); + if (err < 0) + goto out_free; + + counters = g_try_malloc0(sizeof(*counters) + + sizeof(struct xt_counters) * table->num_entries); + if (!counters) { + err = -ENOMEM; + goto out_hash_remove; + } + g_stpcpy(counters->name, table->info->name); + counters->num_counters = table->num_entries; + for (list = table->entries, cnt = 0; list; list = list->next, cnt++) { + e = list->data; + if (e->counter_idx >= 0) + counters->counters[cnt] = repl->counters[e->counter_idx]; + } + err = iptables_add_counters(table, counters); + g_free(counters); if (err < 0) - return err; + goto out_hash_remove; - g_hash_table_remove(table_hash, table_name); + err = 0; - return 0; +out_hash_remove: + g_hash_table_remove(table_hash, table_name); +out_free: + g_free(repl->counters); + g_free(repl); + return err; } static void remove_table(gpointer user_data) @@ -216,6 +216,7 @@ void connman_error(const char *format, ...) vsyslog(LOG_ERR, format, ap); va_end(ap); + fflush(log_file); } /** @@ -234,6 +235,7 @@ void connman_debug(const char *format, ...) vsyslog(LOG_DEBUG, format, ap); va_end(ap); + fflush(log_file); } static void print_backtrace(unsigned int offset) @@ -59,6 +59,8 @@ static char *default_blacklist[] = { "vboxnet", "virbr", "ifb", + "ve-", + "vb-", NULL }; @@ -67,6 +69,7 @@ static struct { char **pref_timeservers; unsigned int *auto_connect; unsigned int *preferred_techs; + unsigned int *always_connected_techs; char **fallback_nameservers; unsigned int timeout_inputreq; unsigned int timeout_browserlaunch; @@ -76,6 +79,8 @@ static struct { char **tethering_technologies; bool persistent_tethering_mode; bool enable_6to4; + char *vendor_class_id; + bool enable_online_check; #if defined TIZEN_EXT char **cellular_interfaces; bool tizen_tv_extension; @@ -85,6 +90,7 @@ static struct { .pref_timeservers = NULL, .auto_connect = NULL, .preferred_techs = NULL, + .always_connected_techs = NULL, .fallback_nameservers = NULL, .timeout_inputreq = DEFAULT_INPUT_REQUEST_TIMEOUT, .timeout_browserlaunch = DEFAULT_BROWSER_LAUNCH_TIMEOUT, @@ -94,6 +100,8 @@ static struct { .tethering_technologies = NULL, .persistent_tethering_mode = false, .enable_6to4 = false, + .vendor_class_id = NULL, + .enable_online_check = true, #if defined TIZEN_EXT .cellular_interfaces = NULL, .tizen_tv_extension = false, @@ -103,6 +111,7 @@ static struct { #define CONF_BG_SCAN "BackgroundScanning" #define CONF_PREF_TIMESERVERS "FallbackTimeservers" #define CONF_AUTO_CONNECT "DefaultAutoConnectTechnologies" +#define CONF_ALWAYS_CONNECTED_TECHS "AlwaysConnectedTechnologies" #define CONF_PREFERRED_TECHS "PreferredTechnologies" #define CONF_FALLBACK_NAMESERVERS "FallbackNameservers" #define CONF_TIMEOUT_INPUTREQ "InputRequestTimeout" @@ -113,6 +122,8 @@ static struct { #define CONF_TETHERING_TECHNOLOGIES "TetheringTechnologies" #define CONF_PERSISTENT_TETHERING_MODE "PersistentTetheringMode" #define CONF_ENABLE_6TO4 "Enable6to4" +#define CONF_VENDOR_CLASS_ID "VendorClassID" +#define CONF_ENABLE_ONLINE_CHECK "EnableOnlineCheck" #if defined TIZEN_EXT #define CONF_CELLULAR_INTERFACE "NetworkCellularInterfaceList" #define CONF_TIZEN_TV_EXT "TizenTVExtension" @@ -122,6 +133,7 @@ static const char *supported_options[] = { CONF_BG_SCAN, CONF_PREF_TIMESERVERS, CONF_AUTO_CONNECT, + CONF_ALWAYS_CONNECTED_TECHS, CONF_PREFERRED_TECHS, CONF_FALLBACK_NAMESERVERS, CONF_TIMEOUT_INPUTREQ, @@ -132,6 +144,7 @@ static const char *supported_options[] = { CONF_TETHERING_TECHNOLOGIES, CONF_PERSISTENT_TETHERING_MODE, CONF_ENABLE_6TO4, + CONF_ENABLE_ONLINE_CHECK, #if defined TIZEN_EXT CONF_CELLULAR_INTERFACE, CONF_TIZEN_TV_EXT, @@ -298,6 +311,7 @@ static void parse_config(GKeyFile *config) char **interfaces; char **str_list; char **tethering; + char *vendor_class_id; gsize len; int timeout; @@ -351,6 +365,17 @@ static void parse_config(GKeyFile *config) g_clear_error(&error); str_list = __connman_config_get_string_list(config, "General", + CONF_ALWAYS_CONNECTED_TECHS, &len, &error); + + if (!error) + connman_settings.always_connected_techs = + parse_service_types(str_list, len); + + g_strfreev(str_list); + + g_clear_error(&error); + + str_list = __connman_config_get_string_list(config, "General", CONF_FALLBACK_NAMESERVERS, &len, &error); if (!error) @@ -424,6 +449,23 @@ static void parse_config(GKeyFile *config) g_clear_error(&error); + vendor_class_id = __connman_config_get_string(config, "General", + CONF_VENDOR_CLASS_ID, &error); + if (!error) + connman_settings.vendor_class_id = vendor_class_id; + + g_clear_error(&error); + + boolean = __connman_config_get_bool(config, "General", + CONF_ENABLE_ONLINE_CHECK, &error); + if (!error) { + connman_settings.enable_online_check = boolean; + if (!boolean) + connman_info("Online check disabled by main config."); + } + + g_clear_error(&error); + #if defined TIZEN_EXT check_Tizen_configuration(config); #endif @@ -539,10 +581,34 @@ static gboolean option_version = FALSE; static bool parse_debug(const char *key, const char *value, gpointer user_data, GError **error) { - if (value) - option_debug = g_strdup(value); - else + if (value) { + if (option_debug) { + char *prev = option_debug; + + option_debug = g_strconcat(prev, ",", value, NULL); + g_free(prev); + } else { + option_debug = g_strdup(value); + } + } else { + g_free(option_debug); option_debug = g_strdup("*"); + } + + return true; +} + +static bool parse_noplugin(const char *key, const char *value, + gpointer user_data, GError **error) +{ + if (option_noplugin) { + char *prev = option_noplugin; + + option_noplugin = g_strconcat(prev, ",", value, NULL); + g_free(prev); + } else { + option_noplugin = g_strdup(value); + } return true; } @@ -560,7 +626,7 @@ static GOptionEntry options[] = { "Specify networking interface to ignore", "DEV" }, { "plugin", 'p', 0, G_OPTION_ARG_STRING, &option_plugin, "Specify plugins to load", "NAME,..." }, - { "noplugin", 'P', 0, G_OPTION_ARG_STRING, &option_noplugin, + { "noplugin", 'P', 0, G_OPTION_ARG_CALLBACK, &parse_noplugin, "Specify plugins not to load", "NAME,..." }, { "wifi", 'W', 0, G_OPTION_ARG_STRING, &option_wifi, "Specify driver for WiFi/Supplicant", "NAME" }, @@ -580,6 +646,9 @@ static GOptionEntry options[] = { const char *connman_option_get_string(const char *key) { + if (g_str_equal(key, CONF_VENDOR_CLASS_ID)) + return connman_settings.vendor_class_id; + if (g_strcmp0(key, "wifi") == 0) { if (!option_wifi) return "nl80211,wext"; @@ -607,6 +676,9 @@ bool connman_setting_get_bool(const char *key) if (g_str_equal(key, CONF_ENABLE_6TO4)) return connman_settings.enable_6to4; + if (g_str_equal(key, CONF_ENABLE_ONLINE_CHECK)) + return connman_settings.enable_online_check; + return false; } @@ -640,6 +712,9 @@ unsigned int *connman_setting_get_uint_list(const char *key) if (g_str_equal(key, CONF_PREFERRED_TECHS)) return connman_settings.preferred_techs; + if (g_str_equal(key, CONF_ALWAYS_CONNECTED_TECHS)) + return connman_settings.always_connected_techs; + return NULL; } @@ -737,7 +812,6 @@ int main(int argc, char *argv[]) __connman_device_init(option_device, option_nodevice); __connman_ippool_init(); - __connman_iptables_init(); __connman_firewall_init(); __connman_nat_init(); __connman_tethering_init(); @@ -746,7 +820,6 @@ int main(int argc, char *argv[]) __connman_stats_init(); __connman_clock_init(); - __connman_resolver_init(option_dnsproxy); __connman_ipconfig_init(); __connman_rtnl_init(); __connman_task_init(); @@ -758,6 +831,7 @@ int main(int argc, char *argv[]) __connman_plugin_init(option_plugin, option_noplugin); + __connman_resolver_init(option_dnsproxy); __connman_rtnl_start(); __connman_dhcp_init(); __connman_dhcpv6_init(); @@ -804,7 +878,6 @@ int main(int argc, char *argv[]) __connman_tethering_cleanup(); __connman_nat_cleanup(); __connman_firewall_cleanup(); - __connman_iptables_cleanup(); __connman_peer_service_cleanup(); __connman_peer_cleanup(); __connman_ippool_cleanup(); diff --git a/src/main.conf b/src/main.conf index d0edbdf7..a2cc1e20 100755 --- a/src/main.conf +++ b/src/main.conf @@ -60,8 +60,8 @@ PreferredTechnologies = wifi, ethernet # Found interfaces will be compared to the list and will # not be handled by connman, if their first characters # match any of the list entries. Default value is -# vmnet,vboxnet,virbr,ifb. -# NetworkInterfaceBlacklist = vmnet,vboxnet,virbr,ifb +# vmnet,vboxnet,virbr,ifb,ve-,vb-. +# NetworkInterfaceBlacklist = vmnet,vboxnet,virbr,ifb,ve-,vb- NetworkInterfaceBlacklist = veth, vmnet,vboxnet,virbr,usb,rndis,rmnet,rev_rmnet,dummy,seth_td,seth_w # Allow connman to change the system hostname. This can @@ -107,4 +107,20 @@ SingleConnectedTechnology = true # section 4.1). # Enable6to4 = false +# Enable use of http get as on online status check. +# When a service is in a READY state, and is selected as default, +# ConnMan will issue an HTTP GET request to verify that end-to-end +# connectivity is successful. Only then the service will be +# transitioned to ONLINE state. +# If this setting is false, the default service will remain in READY state. +# Default value is true. +# EnableOnlineCheck = false + +# List of technologies with AutoConnect = true which are always connected +# regardless of PreferredTechnologies setting. Default value is empty and +# will connect a technology only if it is at a higher preference than any +# other which is already connected. +# This setting has no effect if SingleConnectedTechnologies is enabled. +# AlwaysConnectedTechnologies = + NetworkCellularInterfaceList = pdp,rmnet,seth_td,seth_w @@ -25,7 +25,10 @@ #endif #include <errno.h> -#include <stdio.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <unistd.h> #include "connman.h" @@ -42,46 +45,52 @@ struct connman_nat { static int enable_ip_forward(bool enable) { - FILE *f; + static char value = 0; + int f, err = 0; - f = fopen("/proc/sys/net/ipv4/ip_forward", "r+"); - if (!f) + if ((f = open("/proc/sys/net/ipv4/ip_forward", O_CLOEXEC | O_RDWR)) < 0) return -errno; - if (enable) - fprintf(f, "1"); - else - fprintf(f, "0"); + if (!value) { + if (read(f, &value, sizeof(value)) < 0) + value = 0; - fclose(f); + if (lseek(f, 0, SEEK_SET) < 0) + return -errno; + } - return 0; + if (enable) { + char allow = '1'; + + if (write (f, &allow, sizeof(allow)) < 0) + err = -errno; + } else { + char deny = '0'; + + if (value) + deny = value; + + if (write(f, &deny, sizeof(deny)) < 0) + err = -errno; + + value = 0; + } + + close(f); + + return err; } static int enable_nat(struct connman_nat *nat) { - char *cmd; - int err; - g_free(nat->interface); nat->interface = g_strdup(default_interface); if (!nat->interface) return 0; - /* Enable masquerading */ - cmd = g_strdup_printf("-s %s/%d -o %s -j MASQUERADE", - nat->address, - nat->prefixlen, - nat->interface); - - err = __connman_firewall_add_rule(nat->fw, "nat", - "POSTROUTING", cmd); - g_free(cmd); - if (err < 0) - return err; - - return __connman_firewall_enable(nat->fw); + return __connman_firewall_enable_nat(nat->fw, nat->address, + nat->prefixlen, nat->interface); } static void disable_nat(struct connman_nat *nat) @@ -89,8 +98,7 @@ static void disable_nat(struct connman_nat *nat) if (!nat->interface) return; - /* Disable masquerading */ - __connman_firewall_disable(nat->fw); + __connman_firewall_disable_nat(nat->fw); } int __connman_nat_enable(const char *name, const char *address, diff --git a/src/network.c b/src/network.c index f7a9925a..d38fc0af 100755 --- a/src/network.c +++ b/src/network.c @@ -90,8 +90,13 @@ struct connman_network { char *passphrase; char *eap; char *identity; + char *anonymous_identity; char *agent_identity; char *ca_cert_path; + char *subject_match; + char *altsubject_match; + char *domain_suffix_match; + char *domain_match; char *client_cert_path; char *private_key_path; char *private_key_passphrase; @@ -109,7 +114,8 @@ struct connman_network { bool rsn_mode; int disconnect_reason; int assoc_status_code; - GSList *vsie_list; + void *wifi_vsie; + unsigned int wifi_vsie_len; #endif } wifi; @@ -164,8 +170,6 @@ static void set_configuration(struct connman_network *network, __connman_device_set_network(network->device, network); - connman_device_set_disconnected(network->device, false); - service = connman_service_lookup_from_network(network); __connman_service_ipconfig_indicate_state(service, CONNMAN_SERVICE_STATE_CONFIGURATION, @@ -201,6 +205,8 @@ static void dhcp_success(struct connman_network *network) if (err < 0) goto err; + __connman_service_save(service); + return; err: @@ -251,8 +257,8 @@ static int set_connected_manual(struct connman_network *network) network->connecting = false; service = connman_service_lookup_from_network(network); - ipconfig = __connman_service_get_ip4config(service); + __connman_ipconfig_enable(ipconfig); if (!__connman_ipconfig_get_local(ipconfig)) __connman_service_read_ip4config(service); @@ -283,6 +289,7 @@ static int set_connected_dhcp(struct connman_network *network) service = connman_service_lookup_from_network(network); ipconfig_ipv4 = __connman_service_get_ip4config(service); + __connman_ipconfig_enable(ipconfig_ipv4); err = __connman_dhcp_start(ipconfig_ipv4, network, dhcp_callback, NULL); @@ -326,13 +333,8 @@ static int manual_ipv6_set(struct connman_network *network, if (err < 0) return err; - __connman_connection_gateway_activate(service, - CONNMAN_IPCONFIG_TYPE_IPV6); - __connman_device_set_network(network->device, network); - connman_device_set_disconnected(network->device, false); - connman_network_set_associating(network, false); network->connecting = false; @@ -613,8 +615,6 @@ static void autoconf_ipv6_set(struct connman_network *network) __connman_device_set_network(network->device, network); - connman_device_set_disconnected(network->device, false); - #if defined TIZEN_EXT if(network->type == CONNMAN_NETWORK_TYPE_CELLULAR) return; @@ -628,6 +628,8 @@ static void autoconf_ipv6_set(struct connman_network *network) if (!ipconfig) return; + __connman_ipconfig_enable(ipconfig); + __connman_ipconfig_enable_ipv6(ipconfig); __connman_ipconfig_address_remove(ipconfig); @@ -710,10 +712,20 @@ static void set_disconnected(struct connman_network *network) switch (ipv4_method) { case CONNMAN_IPCONFIG_METHOD_UNKNOWN: case CONNMAN_IPCONFIG_METHOD_OFF: - case CONNMAN_IPCONFIG_METHOD_AUTO: case CONNMAN_IPCONFIG_METHOD_FIXED: case CONNMAN_IPCONFIG_METHOD_MANUAL: break; + case CONNMAN_IPCONFIG_METHOD_AUTO: + /* + * If the current method is AUTO then next time we + * try first DHCP. DHCP also needs to be stopped + * in this case because if we fell in AUTO means + * that DHCP was launched for IPv4 but it failed. + */ + __connman_ipconfig_set_method(ipconfig_ipv4, + CONNMAN_IPCONFIG_METHOD_DHCP); + __connman_service_notify_ipv4_configuration(service); + /* fall through */ case CONNMAN_IPCONFIG_METHOD_DHCP: __connman_dhcp_stop(ipconfig_ipv4); break; @@ -895,20 +907,6 @@ static void probe_driver(struct connman_network_driver *driver) } } -static void remove_driver(struct connman_network_driver *driver) -{ - GSList *list; - - DBG("driver %p name %s", driver, driver->name); - - for (list = network_list; list; list = list->next) { - struct connman_network *network = list->data; - - if (network->driver == driver) - network_remove(network); - } -} - static gint compare_priority(gconstpointer a, gconstpointer b) { const struct connman_network_driver *driver1 = a; @@ -945,11 +943,18 @@ int connman_network_driver_register(struct connman_network_driver *driver) */ void connman_network_driver_unregister(struct connman_network_driver *driver) { + GSList *list; + DBG("driver %p name %s", driver, driver->name); driver_list = g_slist_remove(driver_list, driver); - remove_driver(driver); + for (list = network_list; list; list = list->next) { + struct connman_network *network = list->data; + + if (network->driver == driver) + network_remove(network); + } } static void network_destruct(struct connman_network *network) @@ -962,15 +967,20 @@ static void network_destruct(struct connman_network *network) g_free(network->wifi.passphrase); g_free(network->wifi.eap); g_free(network->wifi.identity); + g_free(network->wifi.anonymous_identity); g_free(network->wifi.agent_identity); g_free(network->wifi.ca_cert_path); + g_free(network->wifi.subject_match); + g_free(network->wifi.altsubject_match); + g_free(network->wifi.domain_suffix_match); + g_free(network->wifi.domain_match); g_free(network->wifi.client_cert_path); g_free(network->wifi.private_key_path); g_free(network->wifi.private_key_passphrase); g_free(network->wifi.phase2_auth); g_free(network->wifi.pin_wps); #if defined TIZEN_EXT - g_slist_free_full(network->wifi.vsie_list, g_free); + g_free(network->wifi.wifi_vsie); #endif g_free(network->path); g_free(network->group); @@ -997,14 +1007,10 @@ struct connman_network *connman_network_create(const char *identifier, struct connman_network *network; char *ident; - DBG("identifier %s type %d", identifier, type); - network = g_try_new0(struct connman_network, 1); if (!network) return NULL; - DBG("network %p", network); - network->refcount = 1; ident = g_strdup(identifier); @@ -1019,6 +1025,8 @@ struct connman_network *connman_network_create(const char *identifier, network_list = g_slist_prepend(network_list, network); + DBG("network %p identifier %s type %s", network, identifier, + type2string(type)); return network; } @@ -2058,18 +2066,6 @@ int connman_network_get_disconnect_reason(struct connman_network *network) return network->wifi.disconnect_reason; } - -int connman_network_set_assoc_status_code(struct connman_network *network, - int assoc_status_code) -{ - - if (network == NULL) - return 0; - - network->wifi.assoc_status_code = assoc_status_code; - return 0; -} - int connman_network_get_assoc_status_code(struct connman_network *network) { if (network == NULL) @@ -2077,7 +2073,6 @@ int connman_network_get_assoc_status_code(struct connman_network *network) return network->wifi.assoc_status_code; } - #endif int connman_network_set_nameservers(struct connman_network *network, @@ -2161,10 +2156,6 @@ int connman_network_set_name(struct connman_network *network, int connman_network_set_strength(struct connman_network *network, uint8_t strength) { -#if !defined TIZEN_EXT - DBG("network %p strengh %d", network, strength); -#endif - network->strength = strength; return 0; @@ -2178,10 +2169,6 @@ uint8_t connman_network_get_strength(struct connman_network *network) int connman_network_set_frequency(struct connman_network *network, uint16_t frequency) { -#if !defined TIZEN_EXT - DBG("network %p frequency %d", network, frequency); -#endif - network->frequency = frequency; return 0; @@ -2195,8 +2182,6 @@ uint16_t connman_network_get_frequency(struct connman_network *network) int connman_network_set_wifi_channel(struct connman_network *network, uint16_t channel) { - DBG("network %p wifi channel %d", network, channel); - network->wifi.channel = channel; return 0; @@ -2218,10 +2203,6 @@ uint16_t connman_network_get_wifi_channel(struct connman_network *network) int connman_network_set_string(struct connman_network *network, const char *key, const char *value) { -#if !defined TIZEN_EXT - DBG("network %p key %s value %s", network, key, value); -#endif - if (g_strcmp0(key, "Name") == 0) return connman_network_set_name(network, value); @@ -2249,12 +2230,27 @@ int connman_network_set_string(struct connman_network *network, } else if (g_str_equal(key, "WiFi.Identity")) { g_free(network->wifi.identity); network->wifi.identity = g_strdup(value); + } else if (g_str_equal(key, "WiFi.AnonymousIdentity")) { + g_free(network->wifi.anonymous_identity); + network->wifi.anonymous_identity = g_strdup(value); } else if (g_str_equal(key, "WiFi.AgentIdentity")) { g_free(network->wifi.agent_identity); network->wifi.agent_identity = g_strdup(value); } else if (g_str_equal(key, "WiFi.CACertFile")) { g_free(network->wifi.ca_cert_path); network->wifi.ca_cert_path = g_strdup(value); + } else if (g_str_equal(key, "WiFi.SubjectMatch")) { + g_free(network->wifi.subject_match); + network->wifi.subject_match = g_strdup(value); + } else if (g_str_equal(key, "WiFi.AltSubjectMatch")) { + g_free(network->wifi.altsubject_match); + network->wifi.altsubject_match = g_strdup(value); + } else if (g_str_equal(key, "WiFi.DomainSuffixMatch")) { + g_free(network->wifi.domain_suffix_match); + network->wifi.domain_suffix_match = g_strdup(value); + } else if (g_str_equal(key, "WiFi.DomainMatch")) { + g_free(network->wifi.domain_match); + network->wifi.domain_match = g_strdup(value); } else if (g_str_equal(key, "WiFi.ClientCertFile")) { g_free(network->wifi.client_cert_path); network->wifi.client_cert_path = g_strdup(value); @@ -2287,10 +2283,6 @@ int connman_network_set_string(struct connman_network *network, const char *connman_network_get_string(struct connman_network *network, const char *key) { -#if !defined TIZEN_EXT - DBG("network %p key %s", network, key); -#endif - if (g_str_equal(key, "Path")) return network->path; else if (g_str_equal(key, "Name")) @@ -2315,10 +2307,20 @@ const char *connman_network_get_string(struct connman_network *network, return network->wifi.eap; else if (g_str_equal(key, "WiFi.Identity")) return network->wifi.identity; + else if (g_str_equal(key, "WiFi.AnonymousIdentity")) + return network->wifi.anonymous_identity; else if (g_str_equal(key, "WiFi.AgentIdentity")) return network->wifi.agent_identity; else if (g_str_equal(key, "WiFi.CACertFile")) return network->wifi.ca_cert_path; + else if (g_str_equal(key, "WiFi.SubjectMatch")) + return network->wifi.subject_match; + else if (g_str_equal(key, "WiFi.AltSubjectMatch")) + return network->wifi.altsubject_match; + else if (g_str_equal(key, "WiFi.DomainSuffixMatch")) + return network->wifi.domain_suffix_match; + else if (g_str_equal(key, "WiFi.DomainMatch")) + return network->wifi.domain_match; else if (g_str_equal(key, "WiFi.ClientCertFile")) return network->wifi.client_cert_path; else if (g_str_equal(key, "WiFi.PrivateKeyFile")) @@ -2344,10 +2346,6 @@ const char *connman_network_get_string(struct connman_network *network, int connman_network_set_bool(struct connman_network *network, const char *key, bool value) { -#if !defined TIZEN_EXT - DBG("network %p key %s value %d", network, key, value); -#endif - if (g_strcmp0(key, "Roaming") == 0) network->roaming = value; else if (g_strcmp0(key, "WiFi.WPS") == 0) @@ -2374,10 +2372,6 @@ int connman_network_set_bool(struct connman_network *network, bool connman_network_get_bool(struct connman_network *network, const char *key) { -#if !defined TIZEN_EXT - DBG("network %p key %s", network, key); -#endif - if (g_str_equal(key, "Roaming")) return network->roaming; else if (g_str_equal(key, "WiFi.WPS")) @@ -2394,31 +2388,6 @@ bool connman_network_get_bool(struct connman_network *network, return false; } -#if defined TIZEN_EXT -/** - * connman_network_set_vsie_list: - * @network: network structure - * @vsie_list: GSList pointer - * - * Set vendor specific list pointer - */ -void connman_network_set_vsie_list(struct connman_network *network, GSList *vsie_list) -{ - network->wifi.vsie_list = vsie_list; -} - -/** - * connman_network_get_vsie_list: - * @network: network structure - * - * Get vendor specific list pointer - */ -void *connman_network_get_vsie_list(struct connman_network *network) -{ - return network->wifi.vsie_list; -} -#endif - /** * connman_network_set_blob: * @network: network structure @@ -2431,10 +2400,6 @@ void *connman_network_get_vsie_list(struct connman_network *network) int connman_network_set_blob(struct connman_network *network, const char *key, const void *data, unsigned int size) { -#if !defined TIZEN_EXT - DBG("network %p key %s size %d", network, key, size); -#endif - if (g_str_equal(key, "WiFi.SSID")) { g_free(network->wifi.ssid); network->wifi.ssid = g_try_malloc(size); @@ -2443,6 +2408,16 @@ int connman_network_set_blob(struct connman_network *network, network->wifi.ssid_len = size; } else network->wifi.ssid_len = 0; +#if defined TIZEN_EXT + } else if (g_str_equal(key, "WiFi.Vsie")){ + g_free(network->wifi.wifi_vsie); + network->wifi.wifi_vsie = g_try_malloc(size); + if (network->wifi.wifi_vsie) { + memcpy(network->wifi.wifi_vsie, data, size); + network->wifi.wifi_vsie_len = size; + } else + network->wifi.wifi_vsie_len = 0; +#endif } else { return -EINVAL; } @@ -2461,16 +2436,21 @@ int connman_network_set_blob(struct connman_network *network, const void *connman_network_get_blob(struct connman_network *network, const char *key, unsigned int *size) { -#if !defined TIZEN_EXT - DBG("network %p key %s", network, key); -#endif - if (g_str_equal(key, "WiFi.SSID")) { if (size) *size = network->wifi.ssid_len; return network->wifi.ssid; } +#if defined TIZEN_EXT + if (g_str_equal(key, "WiFi.Vsie")) { + if (size) + *size = network->wifi.wifi_vsie_len; + + return network->wifi.wifi_vsie; + } +#endif + return NULL; } @@ -30,10 +30,12 @@ #include <stdlib.h> #include <string.h> #include <sys/time.h> +#include <sys/timex.h> #include <sys/socket.h> #include <netinet/in.h> #include <netinet/ip.h> #include <arpa/inet.h> +#include <netdb.h> #include <glib.h> @@ -65,9 +67,13 @@ struct ntp_msg { #define OFFSET_1900_1970 2208988800UL /* 1970 - 1900 in seconds */ -#define STEPTIME_MIN_OFFSET 0.128 +#define STEPTIME_MIN_OFFSET 0.4 #define LOGTOD(a) ((a) < 0 ? 1. / (1L << -(a)) : 1L << (int)(a)) +#define NSEC_PER_SEC ((uint64_t)1000000000ULL) +#ifndef ADJ_SETOFFSET +#define ADJ_SETOFFSET 0x0100 /* add 'time' to current time */ +#endif #define NTP_SEND_TIMEOUT 2 #define NTP_SEND_RETRIES 3 @@ -117,12 +123,12 @@ static struct timespec mtx_time; static int transmit_fd = 0; static char *timeserver = NULL; -static struct sockaddr_in timeserver_addr; +static struct sockaddr_in6 timeserver_addr; static gint poll_id = 0; static gint timeout_id = 0; static guint retries = 0; -static void send_packet(int fd, const char *server, uint32_t timeout); +static void send_packet(int fd, struct sockaddr *server, uint32_t timeout); static void next_server(void) { @@ -143,17 +149,19 @@ static gboolean send_timeout(gpointer user_data) if (retries++ == NTP_SEND_RETRIES) next_server(); else - send_packet(transmit_fd, timeserver, timeout << 1); + send_packet(transmit_fd, (struct sockaddr *)×erver_addr, timeout << 1); return FALSE; } -static void send_packet(int fd, const char *server, uint32_t timeout) +static void send_packet(int fd, struct sockaddr *server, uint32_t timeout) { struct ntp_msg msg; - struct sockaddr_in addr; struct timeval transmit_timeval; ssize_t len; + void * addr; + int size; + char ipaddrstring[INET6_ADDRSTRLEN + 1]; /* * At some point, we could specify the actual system precision with: @@ -164,14 +172,19 @@ static void send_packet(int fd, const char *server, uint32_t timeout) memset(&msg, 0, sizeof(msg)); msg.flags = NTP_FLAGS_ENCODE(NTP_FLAG_LI_NOTINSYNC, NTP_FLAG_VN_VER4, NTP_FLAG_MD_CLIENT); - msg.poll = 4; // min - msg.poll = 10; // max + msg.poll = 10; msg.precision = NTP_PRECISION_S; - memset(&addr, 0, sizeof(addr)); - addr.sin_family = AF_INET; - addr.sin_port = htons(123); - addr.sin_addr.s_addr = inet_addr(server); + if (server->sa_family == AF_INET) { + size = sizeof(struct sockaddr_in); + addr = (void *)&(((struct sockaddr_in *)×erver_addr)->sin_addr); + } else if (server->sa_family == AF_INET6) { + size = sizeof(struct sockaddr_in6); + addr = (void *)×erver_addr.sin6_addr; + } else { + connman_error("Family is neither ipv4 nor ipv6"); + return; + } gettimeofday(&transmit_timeval, NULL); clock_gettime(CLOCK_MONOTONIC, &mtx_time); @@ -180,10 +193,12 @@ static void send_packet(int fd, const char *server, uint32_t timeout) msg.xmttime.fraction = htonl(transmit_timeval.tv_usec * 1000); len = sendto(fd, &msg, sizeof(msg), MSG_DONTWAIT, - &addr, sizeof(addr)); + server, size); + if (len < 0) { connman_error("Time request for server %s failed (%d/%s)", - server, errno, strerror(errno)); + inet_ntop(server->sa_family, addr, ipaddrstring, sizeof(ipaddrstring)), + errno, strerror(errno)); if (errno == ENETUNREACH) __connman_timeserver_sync_next(); @@ -192,7 +207,8 @@ static void send_packet(int fd, const char *server, uint32_t timeout) } if (len != sizeof(msg)) { - connman_error("Broken time request for server %s", server); + connman_error("Broken time request for server %s", + inet_ntop(server->sa_family, addr, ipaddrstring, sizeof(ipaddrstring))); return; } @@ -213,7 +229,7 @@ static gboolean next_poll(gpointer user_data) if (!timeserver || transmit_fd == 0) return FALSE; - send_packet(transmit_fd, timeserver, NTP_SEND_TIMEOUT); + send_packet(transmit_fd, (struct sockaddr *)×erver_addr, NTP_SEND_TIMEOUT); return FALSE; } @@ -235,7 +251,9 @@ static void decode_msg(void *base, size_t len, struct timeval *tv, double m_delta, org, rec, xmt, dst; double delay, offset; static guint transmit_delay; - +#if !defined TIZEN_EXT + struct timex tmx = {}; +#endif if (len < sizeof(*msg)) { connman_error("Invalid response from time server"); return; @@ -324,8 +342,6 @@ static void decode_msg(void *base, size_t len, struct timeval *tv, poll_id = g_timeout_add_seconds(transmit_delay, next_poll, NULL); - connman_info("ntp: time slew %+.6f s", offset); - #if defined TIZEN_EXT //send the dbus message to alram-manager { @@ -387,37 +403,44 @@ static void decode_msg(void *base, size_t len, struct timeval *tv, } #else if (offset < STEPTIME_MIN_OFFSET && offset > -STEPTIME_MIN_OFFSET) { - struct timeval adj; - - adj.tv_sec = (long) offset; - adj.tv_usec = (offset - adj.tv_sec) * 1000000; - - DBG("adjusting time"); - - if (adjtime(&adj, &adj) < 0) { - connman_error("Failed to adjust time"); - return; - } - - DBG("%lu seconds, %lu msecs", adj.tv_sec, adj.tv_usec); + tmx.modes = ADJ_STATUS | ADJ_NANO | ADJ_OFFSET | ADJ_TIMECONST | ADJ_MAXERROR | ADJ_ESTERROR; + tmx.status = STA_PLL; + tmx.offset = offset * NSEC_PER_SEC; + tmx.constant = msg->poll - 4; + tmx.maxerror = 0; + tmx.esterror = 0; + + connman_info("ntp: adjust (slew): %+.6f sec", offset); } else { - struct timeval cur; - double dtime; - - gettimeofday(&cur, NULL); - dtime = offset + cur.tv_sec + 1.0e-6 * cur.tv_usec; - cur.tv_sec = (long) dtime; - cur.tv_usec = (dtime - cur.tv_sec) * 1000000; + tmx.modes = ADJ_STATUS | ADJ_NANO | ADJ_SETOFFSET | ADJ_MAXERROR | ADJ_ESTERROR; + + /* ADJ_NANO uses nanoseconds in the microseconds field */ + tmx.time.tv_sec = (long)offset; + tmx.time.tv_usec = (offset - tmx.time.tv_sec) * NSEC_PER_SEC; + tmx.maxerror = 0; + tmx.esterror = 0; + + /* the kernel expects -0.3s as {-1, 7000.000.000} */ + if (tmx.time.tv_usec < 0) { + tmx.time.tv_sec -= 1; + tmx.time.tv_usec += NSEC_PER_SEC; + } - DBG("setting time"); + connman_info("ntp: adjust (jump): %+.6f sec", offset); + } - if (settimeofday(&cur, NULL) < 0) { - connman_error("Failed to set time"); - return; - } + if (NTP_FLAGS_LI_DECODE(msg->flags) & NTP_FLAG_LI_ADDSECOND) + tmx.status |= STA_INS; + else if (NTP_FLAGS_LI_DECODE(msg->flags) & NTP_FLAG_LI_DELSECOND) + tmx.status |= STA_DEL; - DBG("%lu seconds, %lu msecs", cur.tv_sec, cur.tv_usec); + if (adjtimex(&tmx) < 0) { + connman_error("Failed to adjust time"); + return; } + + DBG("interval/delta/delay/drift %fs/%+.3fs/%.3fs/%+ldppm", + LOGTOD(msg->poll), offset, delay, tmx.freq / 65536); #endif } @@ -425,7 +448,7 @@ static gboolean received_data(GIOChannel *channel, GIOCondition condition, gpointer user_data) { unsigned char buf[128]; - struct sockaddr_in sender_addr; + struct sockaddr_in6 sender_addr; struct msghdr msg; struct iovec iov; struct cmsghdr *cmsg; @@ -434,6 +457,9 @@ static gboolean received_data(GIOChannel *channel, GIOCondition condition, char aux[128]; ssize_t len; int fd; + int size; + void * addr_ptr; + void * src_ptr; if (condition & (G_IO_HUP | G_IO_ERR | G_IO_NVAL)) { connman_error("Problem with timer server channel"); @@ -458,8 +484,20 @@ static gboolean received_data(GIOChannel *channel, GIOCondition condition, if (len < 0) return TRUE; - if (timeserver_addr.sin_addr.s_addr != sender_addr.sin_addr.s_addr) - /* only accept messages from the timeserver */ + if (sender_addr.sin6_family == AF_INET) { + size = 4; + addr_ptr = &((struct sockaddr_in *)×erver_addr)->sin_addr; + src_ptr = &((struct sockaddr_in *)&sender_addr)->sin_addr; + } else if (sender_addr.sin6_family == AF_INET6) { + size = 16; + addr_ptr = &((struct sockaddr_in6 *)×erver_addr)->sin6_addr; + src_ptr = &((struct sockaddr_in6 *)&sender_addr)->sin6_addr; + } else { + connman_error("Not a valid family type"); + return TRUE; + } + + if(memcmp(addr_ptr, src_ptr, size) != 0) return TRUE; tv = NULL; @@ -484,36 +522,76 @@ static gboolean received_data(GIOChannel *channel, GIOCondition condition, static void start_ntp(char *server) { GIOChannel *channel; - struct sockaddr_in addr; + struct addrinfo hint; + struct addrinfo *info; + struct sockaddr * addr; + struct sockaddr_in * in4addr; + struct sockaddr_in6 in6addr; + int size; + int family; int tos = IPTOS_LOWDELAY, timestamp = 1; + int ret; if (!server) return; - DBG("server %s", server); + memset(&hint, 0, sizeof(hint)); + hint.ai_family = AF_UNSPEC; + hint.ai_socktype = SOCK_DGRAM; + hint.ai_flags = AI_NUMERICHOST | AI_PASSIVE; + ret = getaddrinfo(server, NULL, &hint, &info); - if (channel_watch > 0) - goto send; + if (ret) { + connman_error("cannot get server info"); + return; + } - transmit_fd = socket(PF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0); - if (transmit_fd < 0) { - connman_error("Failed to open time server socket"); + family = info->ai_family; + + memcpy(×erver_addr, info->ai_addr, info->ai_addrlen); + freeaddrinfo(info); + memset(&in6addr, 0, sizeof(in6addr)); + + if (family == AF_INET) { + ((struct sockaddr_in *)×erver_addr)->sin_port = htons(123); + in4addr = (struct sockaddr_in *)&in6addr; + in4addr->sin_family = family; + addr = (struct sockaddr *)in4addr; + size = sizeof(struct sockaddr_in); + } else if (family == AF_INET6) { + timeserver_addr.sin6_port = htons(123); + in6addr.sin6_family = family; + addr = (struct sockaddr *)&in6addr; + size = sizeof(in6addr); + } else { + connman_error("Family is neither ipv4 nor ipv6"); return; } - memset(&addr, 0, sizeof(addr)); - addr.sin_family = AF_INET; + DBG("server %s family %d", server, family); - if (bind(transmit_fd, (struct sockaddr *) &addr, sizeof(addr)) < 0) { + if (channel_watch > 0) + goto send; + + transmit_fd = socket(family, SOCK_DGRAM | SOCK_CLOEXEC, 0); + + if (transmit_fd <= 0) { + connman_error("Failed to open time server socket"); + return; + } + + if (bind(transmit_fd, (struct sockaddr *) addr, size) < 0) { connman_error("Failed to bind time server socket"); close(transmit_fd); return; } - if (setsockopt(transmit_fd, IPPROTO_IP, IP_TOS, &tos, sizeof(tos)) < 0) { - connman_error("Failed to set type of service option"); - close(transmit_fd); - return; + if (family == AF_INET) { + if (setsockopt(transmit_fd, IPPROTO_IP, IP_TOS, &tos, sizeof(tos)) < 0) { + connman_error("Failed to set type of service option"); + close(transmit_fd); + return; + } } if (setsockopt(transmit_fd, SOL_SOCKET, SO_TIMESTAMP, ×tamp, @@ -541,7 +619,7 @@ static void start_ntp(char *server) g_io_channel_unref(channel); send: - send_packet(transmit_fd, server, NTP_SEND_TIMEOUT); + send_packet(transmit_fd, (struct sockaddr*)×erver_addr, NTP_SEND_TIMEOUT); } int __connman_ntp_start(char *server) @@ -555,7 +633,6 @@ int __connman_ntp_start(char *server) g_free(timeserver); timeserver = g_strdup(server); - timeserver_addr.sin_addr.s_addr = inet_addr(server); start_ntp(timeserver); @@ -176,7 +176,7 @@ static int start_dhcp_server(struct connman_peer *peer) if (err < 0) goto error; - g_timeout_add_seconds(0, dhcp_server_started, connman_peer_ref(peer)); + g_idle_add(dhcp_server_started, connman_peer_ref(peer)); return 0; @@ -758,7 +758,7 @@ void connman_peer_set_name(struct connman_peer *peer, const char *name) void connman_peer_set_iface_address(struct connman_peer *peer, const unsigned char *iface_address) { - memset(peer->iface_address, 0, ETH_ALEN); + memset(peer->iface_address, 0, sizeof(peer->iface_address)); memcpy(peer->iface_address, iface_address, ETH_ALEN); } @@ -905,13 +905,16 @@ int connman_peer_set_state(struct connman_peer *peer, break; case CONNMAN_PEER_STATE_READY: reply_pending(peer, 0); + __connman_technology_set_connected(CONNMAN_SERVICE_TYPE_P2P, true); break; case CONNMAN_PEER_STATE_DISCONNECT: if (peer->connection_master) stop_dhcp_server(peer); + else + __connman_dhcp_stop(peer->ipconfig); peer->connection_master = false; peer->sub_device = NULL; - + __connman_technology_set_connected(CONNMAN_SERVICE_TYPE_P2P, false); break; case CONNMAN_PEER_STATE_FAILURE: if (manage_peer_error(peer) == 0) diff --git a/src/peer_service.c b/src/peer_service.c index 053672af..a457bff7 100755 --- a/src/peer_service.c +++ b/src/peer_service.c @@ -293,9 +293,6 @@ int __connman_peer_service_register(const char *owner, DBusMessage *msg, if (service) { DBG("Found one existing service %p", service); - if (g_strcmp0(service->owner, owner)) - ret = -EBUSY; - if (service->pending) ret = -EINPROGRESS; else diff --git a/src/provider.c b/src/provider.c index 521346b4..c0d69e49 100755 --- a/src/provider.c +++ b/src/provider.c @@ -141,12 +141,12 @@ int connman_provider_disconnect(struct connman_provider *provider) provider_indicate_state(provider, CONNMAN_SERVICE_STATE_DISCONNECT); - if (err < 0) { - if (err != -EINPROGRESS) - return err; + if (err < 0) + return err; - return -EINPROGRESS; - } + if (provider->vpn_service) + provider_indicate_state(provider, + CONNMAN_SERVICE_STATE_IDLE); return 0; } @@ -164,14 +164,15 @@ int connman_provider_remove(struct connman_provider *provider) return 0; } -int __connman_provider_connect(struct connman_provider *provider) +int __connman_provider_connect(struct connman_provider *provider, + const char *dbus_sender) { int err; DBG("provider %p", provider); if (provider->driver && provider->driver->connect) - err = provider->driver->connect(provider); + err = provider->driver->connect(provider, dbus_sender); else return -EOPNOTSUPP; diff --git a/src/proxy.c b/src/proxy.c index f331de92..e1bc420a 100755 --- a/src/proxy.c +++ b/src/proxy.c @@ -123,7 +123,7 @@ unsigned int connman_proxy_lookup(const char *interface, const char *url, lookup->url = g_strdup(url); lookup->service = connman_service_ref(service); - lookup->watch = g_timeout_add_seconds(0, lookup_callback, lookup); + lookup->watch = g_idle_add(lookup_callback, lookup); if (lookup->watch == 0) { g_free(lookup->url); g_free(lookup); diff --git a/src/resolver.c b/src/resolver.c index 8a7fa663..d6c20cdd 100755 --- a/src/resolver.c +++ b/src/resolver.c @@ -97,9 +97,9 @@ static int resolvfile_export(void) * MAXDNSRCH/MAXNS entries are used. */ - for (count = 0, list = g_list_last(resolvfile_list); + for (count = 0, list = g_list_first(resolvfile_list); list && (count < MAXDNSRCH); - list = g_list_previous(list)) { + list = g_list_next(list)) { struct resolvfile_entry *entry = list->data; if (!entry->domain) @@ -115,9 +115,9 @@ static int resolvfile_export(void) if (count) g_string_append_printf(content, "\n"); - for (count = 0, list = g_list_last(resolvfile_list); + for (count = 0, list = g_list_first(resolvfile_list); list && (count < MAXNS); - list = g_list_previous(list)) { + list = g_list_next(list)) { struct resolvfile_entry *entry = list->data; if (!entry->server) @@ -207,7 +207,7 @@ int __connman_resolvfile_remove(int index, const char *domain, return resolvfile_export(); } -static void append_fallback_nameservers(void) +void __connman_resolver_append_fallback_nameservers(void) { GSList *list; @@ -284,7 +284,7 @@ static void remove_entries(GSList *entries) g_slist_free(entries); - append_fallback_nameservers(); + __connman_resolver_append_fallback_nameservers(); } static gboolean resolver_expire_cb(gpointer user_data) @@ -389,24 +389,6 @@ static int append_resolver(int index, const char *domain, entry->timeout = g_timeout_add_seconds(interval, resolver_refresh_cb, entry); - - /* - * We update the service only for those nameservers - * that are automagically added via netlink (lifetime > 0) - */ - if (server && entry->index >= 0) { - struct connman_service *service; - service = __connman_service_lookup_from_index(entry->index); - if (service) -#if defined TIZEN_EXT - __connman_service_nameserver_append(service, - server, true, - CONNMAN_IPCONFIG_TYPE_ALL); -#else - __connman_service_nameserver_append(service, - server, true); -#endif - } } if (entry->index >= 0 && entry->server) @@ -419,6 +401,24 @@ static int append_resolver(int index, const char *domain, else __connman_resolvfile_append(entry->index, domain, server); + /* + * We update the service only for those nameservers + * that are automagically added via netlink (lifetime > 0) + */ + if (server && entry->index >= 0 && lifetime) { + struct connman_service *service; + service = __connman_service_lookup_from_index(entry->index); + if (service) +#if defined TIZEN_EXT + __connman_service_nameserver_append(service, + server, true, + CONNMAN_IPCONFIG_TYPE_ALL); +#else + __connman_service_nameserver_append(service, + server, true); +#endif + } + return 0; } @@ -617,6 +617,28 @@ int __connman_resolver_redo_servers(int index) entry->server); } + /* + * We want to re-add all search domains back to search + * domain lists as they just got removed for RDNSS IPv6-servers + * (above). + * Removal of search domains is not necessary + * as there can be only one instance of each search domain + * in the each dns-servers search domain list. + */ + + for (list = entry_list; list; list = list->next) { + struct entry_data *entry = list->data; + + if (entry->index != index) + continue; + + if (entry->server) + continue; + + __connman_dnsproxy_append(entry->index, entry->domain, + NULL); + } + return 0; } @@ -643,6 +665,14 @@ int __connman_resolver_init(gboolean dnsproxy) DBG("dnsproxy %d", dnsproxy); + /* get autoip nameservers */ + ns = __connman_inet_get_pnp_nameservers(NULL); + for (i = 0; ns && ns[i]; i += 1) { + DBG("pnp server %s", ns[i]); + append_resolver(i, NULL, ns[i], 86400, 0); + } + g_strfreev(ns); + if (!dnsproxy) return 0; diff --git a/src/rfkill.c b/src/rfkill.c index 36426e00..fce9d720 100755 --- a/src/rfkill.c +++ b/src/rfkill.c @@ -206,7 +206,7 @@ int __connman_rfkill_init(void) DBG(""); - fd = open("/dev/rfkill", O_RDWR | O_CLOEXEC); + fd = open("/dev/rfkill", O_RDONLY | O_CLOEXEC); if (fd < 0) { connman_error("Failed to open RFKILL control device"); return -EIO; @@ -212,7 +212,9 @@ static void read_uevent(struct interface_data *interface) } else if (strcmp(line + 8, "vlan") == 0) { interface->service_type = CONNMAN_SERVICE_TYPE_ETHERNET; interface->device_type = CONNMAN_DEVICE_TYPE_ETHERNET; - + } else if (strcmp(line + 8, "bond") == 0) { + interface->service_type = CONNMAN_SERVICE_TYPE_ETHERNET; + interface->device_type = CONNMAN_DEVICE_TYPE_ETHERNET; } else { interface->service_type = CONNMAN_SERVICE_TYPE_UNKNOWN; interface->device_type = CONNMAN_DEVICE_TYPE_UNKNOWN; @@ -551,7 +553,9 @@ static void process_newlink(unsigned short type, int index, unsigned flags, interface = NULL; #endif - } else + } else if (type == ARPHRD_ETHER && interface->device_type == CONNMAN_DEVICE_TYPE_UNKNOWN) + read_uevent(interface); + else interface = NULL; for (list = rtnl_list; list; list = list->next) { @@ -1355,7 +1359,12 @@ static void rtnl_newnduseropt(struct nlmsghdr *hdr) if (opt->nd_opt_type == 25) { /* ND_OPT_RDNSS */ char buf[40]; +#if defined TIZEN_EXT + struct connman_service *service; + service = __connman_service_lookup_from_index(index); + DBG("service: %p\n",service); +#endif servers = rtnl_nd_opt_rdnss(opt, &lifetime, &nr_servers); for (i = 0; i < nr_servers; i++) { @@ -1374,6 +1383,7 @@ static void rtnl_newnduseropt(struct nlmsghdr *hdr) connman_resolver_append_lifetime(index, NULL, buf, lifetime); } + } else if (opt->nd_opt_type == 31) { /* ND_OPT_DNSSL */ g_free(domains); @@ -1499,8 +1509,6 @@ static int process_response(guint32 seq) static void rtnl_message(void *buf, size_t len) { - DBG("buf %p len %zd", buf, len); - while (len > 0) { struct nlmsghdr *hdr = buf; struct nlmsgerr *err; diff --git a/src/service.c b/src/service.c index 033c8f8f..d0543ae5 100755 --- a/src/service.c +++ b/src/service.c @@ -112,6 +112,7 @@ struct connman_service { char **nameservers; char **nameservers_config; char **nameservers_auto; + int nameservers_timeout; char **domains; char *hostname; char *domainname; @@ -120,8 +121,13 @@ struct connman_service { /* 802.1x settings from the config files */ char *eap; char *identity; + char *anonymous_identity; char *agent_identity; char *ca_cert_file; + char *subject_match; + char *altsubject_match; + char *domain_suffix_match; + char *domain_match; char *client_cert_file; char *private_key_file; char *private_key_passphrase; @@ -174,7 +180,7 @@ static struct connman_ipconfig *create_ip4config(struct connman_service *service int index, enum connman_ipconfig_method method); static struct connman_ipconfig *create_ip6config(struct connman_service *service, int index); - +static void dns_changed(struct connman_service *service); struct find_data { const char *path; @@ -327,9 +333,9 @@ enum connman_service_security __connman_service_string2security(const char *str) if (!strcmp(str, "psk")) return CONNMAN_SERVICE_SECURITY_PSK; - if (!strcmp(str, "ieee8021x")) + if (!strcmp(str, "ieee8021x") || !strcmp(str, "8021x")) return CONNMAN_SERVICE_SECURITY_8021X; - if (!strcmp(str, "none")) + if (!strcmp(str, "none") || !strcmp(str, "open")) return CONNMAN_SERVICE_SECURITY_NONE; if (!strcmp(str, "wep")) return CONNMAN_SERVICE_SECURITY_WEP; @@ -555,6 +561,19 @@ static bool is_service_owner_user_login(struct connman_service *service) #endif } +static void set_split_routing(struct connman_service *service, bool value) +{ + if (service->type != CONNMAN_SERVICE_TYPE_VPN) + return; + + service->do_split_routing = value; + + if (service->do_split_routing) + service->order = 0; + else + service->order = 10; +} + int __connman_service_load_modifiable(struct connman_service *service) { GKeyFile *keyfile; @@ -575,8 +594,10 @@ int __connman_service_load_modifiable(struct connman_service *service) case CONNMAN_SERVICE_TYPE_P2P: break; case CONNMAN_SERVICE_TYPE_VPN: - service->do_split_routing = g_key_file_get_boolean(keyfile, - service->identifier, "SplitRouting", NULL); + set_split_routing(service, g_key_file_get_boolean(keyfile, + service->identifier, + "SplitRouting", NULL)); + /* fall through */ case CONNMAN_SERVICE_TYPE_WIFI: case CONNMAN_SERVICE_TYPE_GADGET: @@ -648,8 +669,10 @@ static int service_load(struct connman_service *service) case CONNMAN_SERVICE_TYPE_P2P: break; case CONNMAN_SERVICE_TYPE_VPN: - service->do_split_routing = g_key_file_get_boolean(keyfile, - service->identifier, "SplitRouting", NULL); + set_split_routing(service, g_key_file_get_boolean(keyfile, + service->identifier, + "SplitRouting", NULL)); + autoconnect = g_key_file_get_boolean(keyfile, service->identifier, "AutoConnect", &error); if (!error) @@ -1246,15 +1269,12 @@ done: return result; } -static bool is_connecting_state(struct connman_service *service, - enum connman_service_state state) +static bool is_connecting(enum connman_service_state state) { switch (state) { case CONNMAN_SERVICE_STATE_UNKNOWN: case CONNMAN_SERVICE_STATE_IDLE: case CONNMAN_SERVICE_STATE_FAILURE: - if (service->network) - return connman_network_get_connecting(service->network); case CONNMAN_SERVICE_STATE_DISCONNECT: case CONNMAN_SERVICE_STATE_READY: case CONNMAN_SERVICE_STATE_ONLINE: @@ -1267,8 +1287,7 @@ static bool is_connecting_state(struct connman_service *service, return false; } -static bool is_connected_state(const struct connman_service *service, - enum connman_service_state state) +static bool is_connected(enum connman_service_state state) { switch (state) { case CONNMAN_SERVICE_STATE_UNKNOWN: @@ -1286,57 +1305,127 @@ static bool is_connected_state(const struct connman_service *service, return false; } -static bool is_idle_state(const struct connman_service *service, - enum connman_service_state state) +static bool is_idle(enum connman_service_state state) { switch (state) { + case CONNMAN_SERVICE_STATE_IDLE: + case CONNMAN_SERVICE_STATE_DISCONNECT: + case CONNMAN_SERVICE_STATE_FAILURE: + return true; case CONNMAN_SERVICE_STATE_UNKNOWN: case CONNMAN_SERVICE_STATE_ASSOCIATION: case CONNMAN_SERVICE_STATE_CONFIGURATION: case CONNMAN_SERVICE_STATE_READY: case CONNMAN_SERVICE_STATE_ONLINE: - case CONNMAN_SERVICE_STATE_DISCONNECT: - case CONNMAN_SERVICE_STATE_FAILURE: break; - case CONNMAN_SERVICE_STATE_IDLE: - return true; } return false; } -static bool is_connecting(struct connman_service *service) +static int nameservers_changed_cb(void *user_data) { - return is_connecting_state(service, service->state); + struct connman_service *service = user_data; + + DBG("service %p", service); + + service->nameservers_timeout = 0; + if ((is_idle(service->state) && !service->nameservers) || + is_connected(service->state)) + dns_changed(service); + + return FALSE; } -static bool is_connected(struct connman_service *service) +static void nameservers_changed(struct connman_service *service) { - return is_connected_state(service, service->state); + if (!service->nameservers_timeout) + service->nameservers_timeout = g_idle_add(nameservers_changed_cb, + service); } static bool nameserver_available(struct connman_service *service, + enum connman_ipconfig_type type, const char *ns) { int family; family = connman_inet_check_ipaddress(ns); - if (family == AF_INET) - return is_connected_state(service, service->state_ipv4); + if (family == AF_INET) { + if (type == CONNMAN_IPCONFIG_TYPE_IPV6) + return false; + + return is_connected(service->state_ipv4); + } - if (family == AF_INET6) - return is_connected_state(service, service->state_ipv6); + if (family == AF_INET6) { + if (type == CONNMAN_IPCONFIG_TYPE_IPV4) + return false; + + return is_connected(service->state_ipv6); + } return false; } +static int searchdomain_add_all(struct connman_service *service) +{ + int index, i = 0; + + if (!is_connected(service->state)) + return -ENOTCONN; + + index = __connman_service_get_index(service); + if (index < 0) + return -ENXIO; + + if (service->domains) { + while (service->domains[i]) { + connman_resolver_append(index, service->domains[i], + NULL); + i++; + } + + return 0; + } + + if (service->domainname) + connman_resolver_append(index, service->domainname, NULL); + + return 0; + +} + +static int searchdomain_remove_all(struct connman_service *service) +{ + int index, i = 0; + + if (!is_connected(service->state)) + return -ENOTCONN; + + index = __connman_service_get_index(service); + if (index < 0) + return -ENXIO; + + while (service->domains && service->domains[i]) { + connman_resolver_remove(index, service->domains[i], NULL); + i++; + } + + if (service->domainname) + connman_resolver_remove(index, service->domainname, NULL); + + return 0; +} + static int nameserver_add(struct connman_service *service, + enum connman_ipconfig_type type, const char *nameserver) { - int index; + int index, ret; - if (!nameserver_available(service, nameserver)) + if (!nameserver_available(service, type, nameserver)) return 0; index = __connman_service_get_index(service); @@ -1346,15 +1435,15 @@ static int nameserver_add(struct connman_service *service, #if defined TIZEN_EXT DBG("Resolver append nameserver: %s", nameserver); #endif - return connman_resolver_append(index, NULL, nameserver); + ret = connman_resolver_append(index, NULL, nameserver); + if (ret >= 0) + nameservers_changed(service); + + return ret; } -#if defined TIZEN_EXT static int nameserver_add_all(struct connman_service *service, - enum connman_ipconfig_type type) -#else -static int nameserver_add_all(struct connman_service *service) -#endif + enum connman_ipconfig_type type) { int i = 0; @@ -1375,7 +1464,7 @@ static int nameserver_add_all(struct connman_service *service) service->nameservers_config[i]) == AF_INET && service->dns_config_method_ipv4 == CONNMAN_DNSCONFIG_METHOD_MANUAL) { - nameserver_add(service, + nameserver_add(service, type, service->nameservers_config[i]); } break; @@ -1384,7 +1473,7 @@ static int nameserver_add_all(struct connman_service *service) service->nameservers_config[i]) == AF_INET6 && service->dns_config_method_ipv6 == CONNMAN_DNSCONFIG_METHOD_MANUAL) { - nameserver_add(service, + nameserver_add(service, type, service->nameservers_config[i]); } break; @@ -1393,14 +1482,14 @@ static int nameserver_add_all(struct connman_service *service) service->nameservers_config[i]) == AF_INET && service->dns_config_method_ipv4 == CONNMAN_DNSCONFIG_METHOD_MANUAL) { - nameserver_add(service, + nameserver_add(service, type, service->nameservers_config[i]); } if (connman_inet_check_ipaddress( service->nameservers_config[i]) == AF_INET6 && service->dns_config_method_ipv6 == CONNMAN_DNSCONFIG_METHOD_MANUAL) { - nameserver_add(service, + nameserver_add(service, type, service->nameservers_config[i]); } break; @@ -1412,19 +1501,12 @@ static int nameserver_add_all(struct connman_service *service) break; } #else - nameserver_add(service, service->nameservers_config[i]); + nameserver_add(service, type, + service->nameservers_config[i]); #endif i++; } -#if !defined TIZEN_EXT - return 0; -#endif - } - -#if defined TIZEN_EXT - i = 0; -#endif - if (service->nameservers) { + } else if (service->nameservers) { while (service->nameservers[i]) { #if defined TIZEN_EXT DBG("type %d service->nameservers[%d]: %s",type, @@ -1436,7 +1518,7 @@ static int nameserver_add_all(struct connman_service *service) service->nameservers[i]) == AF_INET && service->dns_config_method_ipv4 == CONNMAN_DNSCONFIG_METHOD_DHCP) { - nameserver_add(service, + nameserver_add(service, type, service->nameservers[i]); } break; @@ -1445,7 +1527,7 @@ static int nameserver_add_all(struct connman_service *service) service->nameservers[i]) == AF_INET6 && service->dns_config_method_ipv6 == CONNMAN_DNSCONFIG_METHOD_DHCP) { - nameserver_add(service, + nameserver_add(service, type, service->nameservers[i]); } break; @@ -1454,14 +1536,14 @@ static int nameserver_add_all(struct connman_service *service) service->nameservers[i]) == AF_INET && service->dns_config_method_ipv4 == CONNMAN_DNSCONFIG_METHOD_DHCP) { - nameserver_add(service, + nameserver_add(service, type, service->nameservers[i]); } if (connman_inet_check_ipaddress( service->nameservers[i]) == AF_INET6 && service->dns_config_method_ipv6 == CONNMAN_DNSCONFIG_METHOD_DHCP) { - nameserver_add(service, + nameserver_add(service, type, service->nameservers[i]); } break; @@ -1473,21 +1555,28 @@ static int nameserver_add_all(struct connman_service *service) break; } #else - nameserver_add(service, service->nameservers[i]); + nameserver_add(service, type, + service->nameservers[i]); #endif i++; } } + if (!i) + __connman_resolver_append_fallback_nameservers(); + + searchdomain_add_all(service); + return 0; } static int nameserver_remove(struct connman_service *service, + enum connman_ipconfig_type type, const char *nameserver) { - int index; + int index, ret; - if (!nameserver_available(service, nameserver)) + if (!nameserver_available(service, type, nameserver)) return 0; index = __connman_service_get_index(service); @@ -1497,15 +1586,15 @@ static int nameserver_remove(struct connman_service *service, #if defined TIZEN_EXT DBG("Resolver remove nameserver: %s", nameserver); #endif - return connman_resolver_remove(index, NULL, nameserver); + ret = connman_resolver_remove(index, NULL, nameserver); + if (ret >= 0) + nameservers_changed(service); + + return ret; } -#if defined TIZEN_EXT static int nameserver_remove_all(struct connman_service *service, - enum connman_ipconfig_type type) -#else -static int nameserver_remove_all(struct connman_service *service) -#endif + enum connman_ipconfig_type type) { #if defined TIZEN_EXT /** @@ -1534,7 +1623,7 @@ static int nameserver_remove_all(struct connman_service *service) CONNMAN_DNSCONFIG_METHOD_DHCP || service->dns_config_method_ipv4 == CONNMAN_DNSCONFIG_METHOD_MANUAL)) { - nameserver_remove(service, + nameserver_remove(service, type, service->nameservers_config[i]); } break; @@ -1545,7 +1634,7 @@ static int nameserver_remove_all(struct connman_service *service) CONNMAN_DNSCONFIG_METHOD_DHCP || service->dns_config_method_ipv6 == CONNMAN_DNSCONFIG_METHOD_MANUAL)) { - nameserver_remove(service, + nameserver_remove(service, type, service->nameservers_config[i]); } break; @@ -1556,7 +1645,7 @@ static int nameserver_remove_all(struct connman_service *service) CONNMAN_DNSCONFIG_METHOD_DHCP || service->dns_config_method_ipv4 == CONNMAN_DNSCONFIG_METHOD_MANUAL)) { - nameserver_remove(service, + nameserver_remove(service, type, service->nameservers_config[i]); } if (connman_inet_check_ipaddress( @@ -1565,7 +1654,7 @@ static int nameserver_remove_all(struct connman_service *service) CONNMAN_DNSCONFIG_METHOD_DHCP || service->dns_config_method_ipv6 == CONNMAN_DNSCONFIG_METHOD_MANUAL)) { - nameserver_remove(service, + nameserver_remove(service, type, service->nameservers_config[i]); } break; @@ -1577,7 +1666,8 @@ static int nameserver_remove_all(struct connman_service *service) break; } #else - nameserver_remove(service, service->nameservers_config[i]); + nameserver_remove(service, type, + service->nameservers_config[i]); #endif i++; } @@ -1595,7 +1685,7 @@ static int nameserver_remove_all(struct connman_service *service) CONNMAN_DNSCONFIG_METHOD_MANUAL || service->dns_config_method_ipv4 == CONNMAN_DNSCONFIG_METHOD_DHCP)) { - nameserver_remove(service, + nameserver_remove(service, type, service->nameservers[i]); } break; @@ -1606,7 +1696,7 @@ static int nameserver_remove_all(struct connman_service *service) CONNMAN_DNSCONFIG_METHOD_MANUAL || service->dns_config_method_ipv6 == CONNMAN_DNSCONFIG_METHOD_DHCP)) { - nameserver_remove(service, + nameserver_remove(service, type, service->nameservers[i]); } break; @@ -1617,7 +1707,7 @@ static int nameserver_remove_all(struct connman_service *service) CONNMAN_DNSCONFIG_METHOD_MANUAL || service->dns_config_method_ipv4 == CONNMAN_DNSCONFIG_METHOD_DHCP)) { - nameserver_remove(service, + nameserver_remove(service, type, service->nameservers[i]); } if (connman_inet_check_ipaddress( @@ -1626,7 +1716,7 @@ static int nameserver_remove_all(struct connman_service *service) CONNMAN_DNSCONFIG_METHOD_MANUAL || service->dns_config_method_ipv6 == CONNMAN_DNSCONFIG_METHOD_DHCP)) { - nameserver_remove(service, + nameserver_remove(service, type, service->nameservers[i]); } break; @@ -1638,60 +1728,12 @@ static int nameserver_remove_all(struct connman_service *service) break; } #else - nameserver_remove(service, service->nameservers[i]); + nameserver_remove(service, type, service->nameservers[i]); #endif i++; } - return 0; -} - -static int searchdomain_add_all(struct connman_service *service) -{ - int index, i = 0; - - if (!is_connected(service)) - return -ENOTCONN; - - index = __connman_service_get_index(service); - if (index < 0) - return -ENXIO; - - if (service->domains) { - while (service->domains[i]) { - connman_resolver_append(index, service->domains[i], - NULL); - i++; - } - - return 0; - } - - if (service->domainname) - connman_resolver_append(index, service->domainname, NULL); - - return 0; - -} - -static int searchdomain_remove_all(struct connman_service *service) -{ - int index, i = 0; - - if (!is_connected(service)) - return -ENOTCONN; - - index = __connman_service_get_index(service); - if (index < 0) - return -ENXIO; - - while (service->domains && service->domains[i]) { - connman_resolver_remove(index, service->domains[i], NULL); - i++; - } - - if (service->domainname) - connman_resolver_remove(index, service->domainname, NULL); + searchdomain_remove_all(service); return 0; } @@ -1750,13 +1792,11 @@ int __connman_service_nameserver_append(struct connman_service *service, #ifdef TIZEN_EXT if(type == CONNMAN_IPCONFIG_TYPE_IPV4 && - service->dns_config_method_ipv4 == - CONNMAN_DNSCONFIG_METHOD_UNKNOWN) + service->dns_config_method_ipv4 == CONNMAN_DNSCONFIG_METHOD_UNKNOWN) service->dns_config_method_ipv4 = CONNMAN_DNSCONFIG_METHOD_DHCP; if(type == CONNMAN_IPCONFIG_TYPE_IPV6 && - service->dns_config_method_ipv6 == - CONNMAN_DNSCONFIG_METHOD_UNKNOWN) + service->dns_config_method_ipv6 == CONNMAN_DNSCONFIG_METHOD_UNKNOWN) service->dns_config_method_ipv6 = CONNMAN_DNSCONFIG_METHOD_DHCP; #endif @@ -1764,12 +1804,13 @@ int __connman_service_nameserver_append(struct connman_service *service, service->nameservers_auto = nameservers; } else { service->nameservers = nameservers; -#if defined TIZEN_EXT - DBG("nameserver add: %s, type: %d", nameserver, type); -#endif - nameserver_add(service, nameserver); + nameserver_add(service, CONNMAN_IPCONFIG_TYPE_ALL, nameserver); } + nameservers_changed(service); + + searchdomain_add_all(service); + return 0; } @@ -1799,7 +1840,7 @@ int __connman_service_nameserver_remove(struct connman_service *service, if (!nameservers) return 0; - for (i = 0; nameservers && nameservers[i]; i++) + for (i = 0; nameservers[i]; i++) if (g_strcmp0(nameservers[i], nameserver) == 0) { found = true; break; @@ -1840,8 +1881,12 @@ set_servers: service->nameservers = nameservers; #if defined TIZEN_EXT DBG("nameserver remove ip_type: %d", type); + nameserver_remove(service, type, + nameserver); +#else + nameserver_remove(service, CONNMAN_IPCONFIG_TYPE_ALL, + nameserver); #endif - nameserver_remove(service, nameserver); } return 0; @@ -1849,23 +1894,12 @@ set_servers: void __connman_service_nameserver_clear(struct connman_service *service) { -#if defined TIZEN_EXT - DBG("nameserver remove all ip_type: CONNMAN_IPCONFIG_TYPE_ALL"); nameserver_remove_all(service, CONNMAN_IPCONFIG_TYPE_ALL); -#else - nameserver_remove_all(service); -#endif g_strfreev(service->nameservers); service->nameservers = NULL; -#if defined TIZEN_EXT - DBG("nameserver add all ip_type: CONNMAN_IPCONFIG_TYPE_ALL"); nameserver_add_all(service, CONNMAN_IPCONFIG_TYPE_ALL); -#else - nameserver_add_all(service); -#endif - } static void add_nameserver_route(int family, int index, char *nameserver, @@ -1978,6 +2012,18 @@ void __connman_service_nameserver_del_routes(struct connman_service *service, nameserver_del_routes(index, service->nameservers, type); } +static void address_updated(struct connman_service *service, + enum connman_ipconfig_type type) +{ + if (is_connected(service->state) && + service == __connman_service_get_default()) { + nameserver_remove_all(service, type); + nameserver_add_all(service, type); + + __connman_timeserver_sync(service); + } +} + static struct connman_stats *stats_get(struct connman_service *service) { if (service->roaming) @@ -2107,21 +2153,21 @@ struct connman_service *connman_service_get_default_connection(void) __connman_service_type2string(service->type)); if (service->type == CONNMAN_SERVICE_TYPE_WIFI && - is_connected(service) == TRUE) { + is_connected(service->state) == TRUE) { return service; } else if (service->type == CONNMAN_SERVICE_TYPE_CELLULAR && __connman_service_is_internet_profile(service) == TRUE) { if (default_service == NULL) default_service = service; - else if (is_connected(service) == TRUE && - is_connected(default_service) == FALSE) + else if (is_connected(service->state) == TRUE && + is_connected(default_service->state) == FALSE) default_service = service; } else if (service->type == CONNMAN_SERVICE_TYPE_ETHERNET && - is_connected(service) == TRUE) { + is_connected(service->state) == TRUE) { if (default_service == NULL) default_service = service; } else if (service->type == CONNMAN_SERVICE_TYPE_BLUETOOTH && - is_connected(service) == TRUE) { + is_connected(service->state) == TRUE) { if (default_service == NULL) default_service = service; } @@ -2140,7 +2186,7 @@ struct connman_service *__connman_service_get_default(void) service = service_list->data; - if (!is_connected(service)) + if (!is_connected(service->state)) return NULL; return service; @@ -2339,7 +2385,7 @@ static void append_ipv4(DBusMessageIter *iter, void *user_data) { struct connman_service *service = user_data; - if (!is_connected_state(service, service->state_ipv4)) + if (!is_connected(service->state_ipv4)) return; if (service->ipconfig_ipv4) @@ -2350,7 +2396,7 @@ static void append_ipv6(DBusMessageIter *iter, void *user_data) { struct connman_service *service = user_data; - if (!is_connected_state(service, service->state_ipv6)) + if (!is_connected(service->state_ipv6)) return; if (service->ipconfig_ipv6) @@ -2384,9 +2430,9 @@ static void append_nameservers(DBusMessageIter *iter, for (i = 0; servers[i]; i++) { if (service) - available = nameserver_available(service, servers[i]); - - DBG("servers[%d] %s available %d", i, servers[i], available); + available = nameserver_available(service, + CONNMAN_IPCONFIG_TYPE_ALL, + servers[i]); if (available) dbus_message_iter_append_basic(iter, @@ -2401,7 +2447,8 @@ static void append_nameserver_manual(DBusMessageIter *iter, bool available = true; if (service) - available = nameserver_available(service, server); + available = nameserver_available(service, + CONNMAN_IPCONFIG_TYPE_ALL, server); if (available) dbus_message_iter_append_basic(iter, @@ -2414,7 +2461,8 @@ static void append_nameserver_dhcp(DBusMessageIter *iter, bool available = true; if (service) - available = nameserver_available(service, server); + available = nameserver_available(service, + CONNMAN_IPCONFIG_TYPE_ALL, server); if (available) dbus_message_iter_append_basic(iter, @@ -2429,7 +2477,7 @@ static void append_dns(DBusMessageIter *iter, void *user_data) int i; #endif - if (!is_connected(service)) + if (!is_connected(service->state)) return; #ifdef TIZEN_EXT @@ -2639,8 +2687,8 @@ static void append_domain(DBusMessageIter *iter, void *user_data) { struct connman_service *service = user_data; - if (!is_connected(service) && - !is_connecting(service)) + if (!is_connected(service->state) && + !is_connecting(service->state)) return; if (service->domains) @@ -2684,7 +2732,7 @@ static void append_proxy(DBusMessageIter *iter, void *user_data) const char *method = proxymethod2string( CONNMAN_SERVICE_PROXY_METHOD_DIRECT); - if (!is_connected(service)) + if (!is_connected(service->state)) return; proxy = connman_service_get_proxy_method(service); @@ -2771,7 +2819,7 @@ static void append_provider(DBusMessageIter *iter, void *user_data) { struct connman_service *service = user_data; - if (!is_connected(service)) + if (!is_connected(service->state)) return; if (service->provider) @@ -2784,11 +2832,13 @@ static void settings_changed(struct connman_service *service, { enum connman_ipconfig_type type; + type = __connman_ipconfig_get_config_type(ipconfig); + + __connman_notifier_ipconfig_changed(service, ipconfig); + if (!allow_property_changed(service)) return; - type = __connman_ipconfig_get_config_type(ipconfig); - if (type == CONNMAN_IPCONFIG_TYPE_IPV4) connman_dbus_property_changed_dict(service->path, CONNMAN_SERVICE_INTERFACE, "IPv4", @@ -2797,8 +2847,6 @@ static void settings_changed(struct connman_service *service, connman_dbus_property_changed_dict(service->path, CONNMAN_SERVICE_INTERFACE, "IPv6", append_ipv6, service); - - __connman_notifier_ipconfig_changed(service, ipconfig); } static void ipv4_configuration_changed(struct connman_service *service) @@ -2813,6 +2861,15 @@ static void ipv4_configuration_changed(struct connman_service *service) service); } +void __connman_service_notify_ipv4_configuration( + struct connman_service *service) +{ + if (!service) + return; + + ipv4_configuration_changed(service); +} + static void ipv6_configuration_changed(struct connman_service *service) { if (!allow_property_changed(service)) @@ -3074,7 +3131,7 @@ void __connman_service_notify(struct connman_service *service, if (!service) return; - if (!is_connected(service)) + if (!is_connected(service->state)) return; stats_update(service, @@ -3248,25 +3305,14 @@ static void append_properties(DBusMessageIter *dict, dbus_bool_t limited, connman_dbus_dict_append_basic(dict, "Frequency", DBUS_TYPE_UINT16, &frequency); } - - unsigned char *wifi_vsie; + const void *wifi_vsie; unsigned int wifi_vsie_len; - GSList *vsie_list = NULL; - - if (service->network) - vsie_list = (GSList *)connman_network_get_vsie_list(service->network); - - if (vsie_list) { - DBG("ConnMan, service->path=%s No.of elements in list: %d", service->path, g_slist_length(vsie_list)); - GSList *list; - for (list = vsie_list; list; list = list->next) { - wifi_vsie = (unsigned char *)list->data; - wifi_vsie_len = wifi_vsie[1] + 2; - - connman_dbus_dict_append_fixed_array(dict, "Vsie", DBUS_TYPE_BYTE, - &wifi_vsie, wifi_vsie_len); - } + wifi_vsie = connman_network_get_blob(service->network, "WiFi.Vsie", &wifi_vsie_len); + if(wifi_vsie_len > 0) { + DBG("ConnMan, service->path=%s vsie length=%d", service->path, wifi_vsie_len); } + connman_dbus_dict_append_fixed_array(dict, "Vsie", DBUS_TYPE_BYTE, + &wifi_vsie, wifi_vsie_len); #endif str = __connman_service_type2string(service->type); @@ -3886,6 +3932,81 @@ void __connman_service_set_identity(struct connman_service *service, service->identity); } +void __connman_service_set_anonymous_identity(struct connman_service *service, + const char *anonymous_identity) +{ + if (service->immutable || service->hidden) + return; + + g_free(service->anonymous_identity); + service->anonymous_identity = g_strdup(anonymous_identity); + + if (service->network) + connman_network_set_string(service->network, + "WiFi.AnonymousIdentity", + service->anonymous_identity); +} + +void __connman_service_set_subject_match(struct connman_service *service, + const char *subject_match) +{ + if (service->immutable || service->hidden) + return; + + g_free(service->subject_match); + service->subject_match = g_strdup(subject_match); + + if (service->network) + connman_network_set_string(service->network, + "WiFi.SubjectMatch", + service->subject_match); +} + +void __connman_service_set_altsubject_match(struct connman_service *service, + const char *altsubject_match) +{ + if (service->immutable || service->hidden) + return; + + g_free(service->altsubject_match); + service->altsubject_match = g_strdup(altsubject_match); + + if (service->network) + connman_network_set_string(service->network, + "WiFi.AltSubjectMatch", + service->altsubject_match); +} + +void __connman_service_set_domain_suffix_match(struct connman_service *service, + const char *domain_suffix_match) +{ + if (service->immutable || service->hidden) + return; + + g_free(service->domain_suffix_match); + service->domain_suffix_match = g_strdup(domain_suffix_match); + + if (service->network) + connman_network_set_string(service->network, + "WiFi.DomainSuffixMatch", + service->domain_suffix_match); +} + +void __connman_service_set_domain_match(struct connman_service *service, + const char *domain_match) +{ + if (service->immutable || service->hidden) + return; + + g_free(service->domain_match); + service->domain_match = g_strdup(domain_match); + + if (service->network) + connman_network_set_string(service->network, + "WiFi.DomainMatch", + service->domain_match); +} + void __connman_service_set_agent_identity(struct connman_service *service, const char *agent_identity) { @@ -3900,7 +4021,7 @@ void __connman_service_set_agent_identity(struct connman_service *service, service->agent_identity); } -static int check_passphrase(enum connman_service_security security, +int __connman_service_check_passphrase(enum connman_service_security security, const char *passphrase) { guint i; @@ -3979,7 +4100,7 @@ int __connman_service_set_passphrase(struct connman_service *service, service->security != CONNMAN_SERVICE_SECURITY_RSN && service->security != CONNMAN_SERVICE_SECURITY_WEP) #endif - err = check_passphrase(service->security, passphrase); + err = __connman_service_check_passphrase(service->security, passphrase); if (err < 0) return err; @@ -4009,8 +4130,6 @@ static DBusMessage *get_properties(DBusConnection *conn, DBusMessage *reply; DBusMessageIter array, dict; - DBG("service %p", service); - reply = dbus_message_new_method_return(msg); if (!reply) return NULL; @@ -4024,6 +4143,23 @@ static DBusMessage *get_properties(DBusConnection *conn, return reply; } +static char **remove_empty_strings(char **strv) +{ + int index = 0; + char **iter = strv; + + while (*iter) { + if (**iter) + strv[index++] = *iter; + else + g_free(*iter); + iter++; + } + + strv[index] = NULL; + return strv; +} + static int update_proxy_configuration(struct connman_service *service, DBusMessageIter *array) { @@ -4137,20 +4273,24 @@ static int update_proxy_configuration(struct connman_service *service, if (servers_str) { g_strfreev(service->proxies); - if (servers_str->len > 0) - service->proxies = g_strsplit_set( + if (servers_str->len > 0) { + char **proxies = g_strsplit_set( servers_str->str, " ", 0); - else + proxies = remove_empty_strings(proxies); + service->proxies = proxies; + } else service->proxies = NULL; } if (excludes_str) { g_strfreev(service->excludes); - if (excludes_str->len > 0) - service->excludes = g_strsplit_set( + if (excludes_str->len > 0) { + char **excludes = g_strsplit_set( excludes_str->str, " ", 0); - else + excludes = remove_empty_strings(excludes); + service->excludes = excludes; + } else service->excludes = NULL; } @@ -4162,7 +4302,7 @@ static int update_proxy_configuration(struct connman_service *service, g_free(service->pac); if (url && strlen(url) > 0) - service->pac = g_strdup(url); + service->pac = g_strstrip(g_strdup(url)); else service->pac = NULL; @@ -4239,8 +4379,7 @@ int __connman_service_reset_ipconfig(struct connman_service *service, new_method = __connman_ipconfig_get_method(new_ipconfig); } - if (is_connecting_state(service, state) || - is_connected_state(service, state)) + if (is_connecting(state) || is_connected(state)) __connman_network_clear_ipconfig(service->network, ipconfig); __connman_ipconfig_unref(ipconfig); @@ -4250,8 +4389,7 @@ int __connman_service_reset_ipconfig(struct connman_service *service, else if (type == CONNMAN_IPCONFIG_TYPE_IPV6) service->ipconfig_ipv6 = new_ipconfig; - if (is_connecting_state(service, state) || - is_connected_state(service, state)) + if (is_connecting(state) || is_connected(state)) __connman_ipconfig_enable(new_ipconfig); if (new_state && new_method != old_method) { @@ -4260,6 +4398,9 @@ int __connman_service_reset_ipconfig(struct connman_service *service, else *new_state = service->state_ipv6; + settings_changed(service, new_ipconfig); + address_updated(service, new_method); + __connman_service_auto_connect(CONNMAN_SERVICE_CONNECT_REASON_AUTO); } @@ -4286,7 +4427,7 @@ static DBusMessage *set_property(DBusConnection *conn, if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_STRING) return __connman_error_invalid_arguments(msg); - if (service->type == CONNMAN_SERVICE_TYPE_WIFI && is_connected(service)) { + if (service->type == CONNMAN_SERVICE_TYPE_WIFI && is_connected(service->state)) { uid_t uid; if (connman_dbus_get_connection_unix_user_sync(conn, dbus_message_get_sender(msg), @@ -4358,10 +4499,11 @@ static DBusMessage *set_property(DBusConnection *conn, gw = __connman_ipconfig_get_gateway_from_index(index, CONNMAN_IPCONFIG_TYPE_ALL); +#if !defined TIZEN_EXT if (gw && strlen(gw)) __connman_service_nameserver_del_routes(service, CONNMAN_IPCONFIG_TYPE_ALL); - +#endif dbus_message_iter_recurse(&value, &entry); #if defined TIZEN_EXT @@ -4415,12 +4557,13 @@ static DBusMessage *set_property(DBusConnection *conn, continue; } #endif - if (connman_inet_check_ipaddress(val) > 0) { - if (str->len > 0) - g_string_append_printf(str, " %s", val); - else - g_string_append(str, val); - } + if (!val[0]) + continue; + + if (str->len > 0) + g_string_append_printf(str, " %s", val); + else + g_string_append(str, val); } #if defined TIZEN_EXT @@ -4436,13 +4579,21 @@ static DBusMessage *set_property(DBusConnection *conn, DBG("%s ip_type: %d nameserver remove all", name, ip_type); nameserver_remove_all(service, ip_type); #else - nameserver_remove_all(service); + nameserver_remove_all(service, CONNMAN_IPCONFIG_TYPE_ALL); #endif g_strfreev(service->nameservers_config); if (str->len > 0) { - service->nameservers_config = - g_strsplit_set(str->str, " ", 0); + char **nameservers, **iter; + + nameservers = g_strsplit_set(str->str, " ", 0); + + for (iter = nameservers; *iter; iter++) + if (connman_inet_check_ipaddress(*iter) <= 0) + *iter[0] = '\0'; + + nameservers = remove_empty_strings(nameservers); + service->nameservers_config = nameservers; } else { service->nameservers_config = NULL; } @@ -4456,7 +4607,7 @@ static DBusMessage *set_property(DBusConnection *conn, DBG("%s ip_type: %d nameserver add all", name, ip_type); nameserver_add_all(service, ip_type); #else - nameserver_add_all(service); + nameserver_add_all(service, CONNMAN_IPCONFIG_TYPE_ALL); #endif dns_configuration_changed(service); @@ -4473,8 +4624,7 @@ static DBusMessage *set_property(DBusConnection *conn, service_save(service); } else if (g_str_equal(name, "Timeservers.Configuration")) { DBusMessageIter entry; - GSList *list = NULL; - int count = 0; + GString *str; if (service->immutable) return __connman_error_not_supported(msg); @@ -4482,35 +4632,37 @@ static DBusMessage *set_property(DBusConnection *conn, if (type != DBUS_TYPE_ARRAY) return __connman_error_invalid_arguments(msg); + str = g_string_new(NULL); + if (!str) + return __connman_error_invalid_arguments(msg); + dbus_message_iter_recurse(&value, &entry); while (dbus_message_iter_get_arg_type(&entry) == DBUS_TYPE_STRING) { const char *val; - GSList *new_head; - dbus_message_iter_get_basic(&entry, &val); + dbus_message_iter_next(&entry); - new_head = __connman_timeserver_add_list(list, val); - if (list != new_head) { - count++; - list = new_head; - } + if (!val[0]) + continue; - dbus_message_iter_next(&entry); + if (str->len > 0) + g_string_append_printf(str, " %s", val); + else + g_string_append(str, val); } g_strfreev(service->timeservers_config); service->timeservers_config = NULL; - if (list) { - service->timeservers_config = g_new0(char *, count+1); + if (str->len > 0) { + char **timeservers = g_strsplit_set(str->str, " ", 0); + timeservers = remove_empty_strings(timeservers); + service->timeservers_config = timeservers; + } else + service->timeservers = NULL; - while (list) { - count--; - service->timeservers_config[count] = list->data; - list = g_slist_delete_link(list, list); - }; - } + g_string_free(str, TRUE); service_save(service); timeservers_configuration_changed(service); @@ -4538,6 +4690,10 @@ static DBusMessage *set_property(DBusConnection *conn, const char *val; dbus_message_iter_get_basic(&entry, &val); dbus_message_iter_next(&entry); + + if (!val[0]) + continue; + if (str->len > 0) g_string_append_printf(str, " %s", val); else @@ -4547,9 +4703,11 @@ static DBusMessage *set_property(DBusConnection *conn, searchdomain_remove_all(service); g_strfreev(service->domains); - if (str->len > 0) - service->domains = g_strsplit_set(str->str, " ", 0); - else + if (str->len > 0) { + char **domains = g_strsplit_set(str->str, " ", 0); + domains = remove_empty_strings(domains); + service->domains = domains; + } else service->domains = NULL; g_string_free(str, TRUE); @@ -4606,8 +4764,7 @@ static DBusMessage *set_property(DBusConnection *conn, &state); if (err < 0) { - if (is_connected_state(service, state) || - is_connecting_state(service, state)) { + if (is_connected(state) || is_connecting(state)) { if (type == CONNMAN_IPCONFIG_TYPE_IPV4) __connman_network_enable_ipconfig(service->network, service->ipconfig_ipv4); @@ -4624,7 +4781,8 @@ static DBusMessage *set_property(DBusConnection *conn, else ipv6_configuration_changed(service); - if (is_connecting(service) || is_connected(service)) { + if (is_connecting(service->state) || + is_connected(service->state)) { if (type == CONNMAN_IPCONFIG_TYPE_IPV4) __connman_network_enable_ipconfig(service->network, service->ipconfig_ipv4); @@ -4668,6 +4826,41 @@ static void set_error(struct connman_service *service, DBUS_TYPE_STRING, &str); } +static void remove_timeout(struct connman_service *service) +{ + if (service->timeout > 0) { + g_source_remove(service->timeout); + service->timeout = 0; + } +} + +static void reply_pending(struct connman_service *service, int error) +{ + remove_timeout(service); + + if (service->pending) { + connman_dbus_reply_pending(service->pending, error, NULL); + service->pending = NULL; + } + + if (service->provider_pending) { + connman_dbus_reply_pending(service->provider_pending, + error, service->path); + service->provider_pending = NULL; + } +} + +static void service_complete(struct connman_service *service) +{ + reply_pending(service, EIO); + + if (service->connect_reason != CONNMAN_SERVICE_CONNECT_REASON_USER) + __connman_service_auto_connect(service->connect_reason); + + g_get_current_time(&service->modified); + service_save(service); +} + static void set_idle(struct connman_service *service) { service->state = service->state_ipv4 = service->state_ipv6 = @@ -4690,8 +4883,8 @@ static DBusMessage *clear_property(DBusConnection *conn, if (g_str_equal(name, "Error")) { set_error(service, CONNMAN_SERVICE_ERROR_UNKNOWN); - g_get_current_time(&service->modified); - service_save(service); + __connman_service_clear_error(service); + service_complete(service); } else return __connman_error_invalid_property(msg); @@ -4746,6 +4939,7 @@ static void disconnect_on_last_session(enum connman_service_type type) } static int active_sessions[MAX_CONNMAN_SERVICE_TYPES] = {}; +static int always_connect[MAX_CONNMAN_SERVICE_TYPES] = {}; static int active_count = 0; void __connman_service_set_active_session(bool enable, GSList *list) @@ -4758,7 +4952,7 @@ void __connman_service_set_active_session(bool enable, GSList *list) else active_count--; - while (list != NULL) { + while (list) { enum connman_service_type type = GPOINTER_TO_INT(list->data); switch (type) { @@ -4830,7 +5024,7 @@ static GList *preferred_tech_list_get(void) for (list = service_list; list; list = list->next) { struct connman_service *service = list->data; - if (!is_connected(service)) + if (!is_connected(service->state)) break; if (service->connect_reason == @@ -4862,6 +5056,43 @@ static GList *preferred_tech_list_get(void) return tech_data.preferred_list; } +static void set_always_connecting_technologies() +{ + unsigned int *always_connected_techs = + connman_setting_get_uint_list("AlwaysConnectedTechnologies"); + int i; + for (i = 0; always_connected_techs && always_connected_techs[i]; i++) + always_connect[always_connected_techs[i]] = 1; +} + +static bool autoconnect_no_session_active(struct connman_service *service) +{ + /* + * Test active_count to see if there are no sessions set up and + * stop autoconnecting, but continue connecting if the service + * belongs to a technology which should always autoconnect. + */ + if (!active_count && !always_connect[service->type]) + return true; + + return false; +} + +static bool autoconnect_already_connecting(struct connman_service *service, + bool autoconnecting) +{ + /* + * If another service is already connecting and this service type has + * not been marked as always connecting, stop the connecting procedure. + */ + if (autoconnecting && + !active_sessions[service->type] && + !always_connect[service->type]) + return true; + + return false; +} + static bool auto_connect_service(GList *services, enum connman_service_connect_reason reason, bool preferred) @@ -4895,15 +5126,15 @@ static bool auto_connect_service(GList *services, /* Tizen takes Wi-Fi as the highest priority into consideration. */ if (service->type != CONNMAN_SERVICE_TYPE_WIFI) - if (is_connecting(service) == TRUE || is_connected(service) == TRUE) + if (is_connecting(service->state) == TRUE || is_connected(service->state) == TRUE) continue; #endif if (service->pending || - is_connecting(service) || - is_connected(service)) { - if (!active_count) - return true; + is_connecting(service->state) || + is_connected(service->state)) { + if (autoconnect_no_session_active(service)) + return true; ignore[service->type] = true; autoconnecting = true; @@ -4937,7 +5168,7 @@ static bool auto_connect_service(GList *services, CONNMAN_SERVICE_STATE_IDLE) continue; - if (autoconnecting && !active_sessions[service->type]) { + if (autoconnect_already_connecting(service, autoconnecting)) { DBG("service %p type %s has no users", service, __connman_service_type2string(service->type)); continue; @@ -4953,7 +5184,7 @@ static bool auto_connect_service(GList *services, __connman_service_connect(service, reason); - if (!active_count) + if (autoconnect_no_session_active(service)) return true; ignore[service->type] = true; @@ -5032,7 +5263,7 @@ void __connman_service_auto_connect(enum connman_service_connect_reason reason) * is ignored as its last state was FAILURE rather than IDLE */ autoconnect_timeout = g_timeout_add(500, run_auto_connect, #else - autoconnect_timeout = g_timeout_add_seconds(0, run_auto_connect, + autoconnect_timeout = g_idle_add(run_auto_connect, #endif GUINT_TO_POINTER(reason)); } @@ -5050,7 +5281,8 @@ static gboolean run_vpn_auto_connect(gpointer data) { if (service->type != CONNMAN_SERVICE_TYPE_VPN) continue; - if (is_connected(service) || is_connecting(service)) { + if (is_connected(service->state) || + is_connecting(service->state)) { if (!service->do_split_routing) need_split = true; continue; @@ -5086,31 +5318,7 @@ static void vpn_auto_connect(void) return; vpn_autoconnect_timeout = - g_timeout_add_seconds(0, run_vpn_auto_connect, NULL); -} - -static void remove_timeout(struct connman_service *service) -{ - if (service->timeout > 0) { - g_source_remove(service->timeout); - service->timeout = 0; - } -} - -static void reply_pending(struct connman_service *service, int error) -{ - remove_timeout(service); - - if (service->pending) { - connman_dbus_reply_pending(service->pending, error, NULL); - service->pending = NULL; - } - - if (service->provider_pending) { - connman_dbus_reply_pending(service->provider_pending, - error, service->path); - service->provider_pending = NULL; - } + g_idle_add(run_vpn_auto_connect, NULL); } bool @@ -5187,9 +5395,6 @@ static gboolean connect_timeout(gpointer user_data) else if (service->provider) connman_provider_disconnect(service->provider); - __connman_ipconfig_disable(service->ipconfig_ipv4); - __connman_ipconfig_disable(service->ipconfig_ipv6); - __connman_stats_service_unregister(service); if (service->pending) { @@ -5284,7 +5489,7 @@ static DBusMessage *connect_service(DBusConnection *conn, if (service->type == CONNMAN_SERVICE_TYPE_CELLULAR) break; #endif - if (!is_connecting(temp) && !is_connected(temp)) + if (!is_connecting(temp->state) && !is_connected(temp->state)) break; if (service == temp) @@ -5339,7 +5544,7 @@ static DBusMessage *disconnect_service(DBusConnection *conn, if (connman_service_user_pdn_connection_unref_and_test(service) != TRUE) return __connman_error_failed(msg, EISCONN); - if (is_connected(service) == TRUE && + if (is_connected(service->state) == TRUE && service == connman_service_get_default_connection()) return __connman_error_failed(msg, EISCONN); } @@ -5398,8 +5603,7 @@ bool __connman_service_remove(struct connman_service *service) return false; #if !defined TIZEN_EXT - if (!service->favorite && service->state != - CONNMAN_SERVICE_STATE_FAILURE) + if (!service->favorite && !is_idle(service->state)) return false; #endif @@ -5411,6 +5615,21 @@ bool __connman_service_remove(struct connman_service *service) g_free(service->identity); service->identity = NULL; + g_free(service->anonymous_identity); + service->anonymous_identity = NULL; + + g_free(service->subject_match); + service->subject_match = NULL; + + g_free(service->altsubject_match); + service->altsubject_match = NULL; + + g_free(service->domain_suffix_match); + service->domain_suffix_match = NULL; + + g_free(service->domain_match); + service->domain_match = NULL; + g_free(service->agent_identity); service->agent_identity = NULL; @@ -5613,11 +5832,11 @@ static DBusMessage *move_service(DBusConnection *conn, return __connman_error_invalid_service(msg); } - target->do_split_routing = true; + set_split_routing(target, true); } else - target->do_split_routing = false; + set_split_routing(target, false); - service->do_split_routing = false; + set_split_routing(service, false); target4 = __connman_ipconfig_get_method(target->ipconfig_ipv4); target6 = __connman_ipconfig_get_method(target->ipconfig_ipv6); @@ -5855,10 +6074,8 @@ static bool allow_property_changed(struct connman_service *service) return FALSE; #endif if (g_hash_table_lookup_extended(services_notify->add, service->path, - NULL, NULL)) { - DBG("no property updates for service %p", service); + NULL, NULL)) return false; - } return true; } @@ -5906,6 +6123,11 @@ static void service_free(gpointer user_data) reply_pending(service, ENOENT); + if (service->nameservers_timeout) { + g_source_remove(service->nameservers_timeout); + dns_changed(service); + } + __connman_notifier_service_remove(service); service_schedule_removed(service); @@ -5964,8 +6186,13 @@ static void service_free(gpointer user_data) g_free(service->identifier); g_free(service->eap); g_free(service->identity); + g_free(service->anonymous_identity); g_free(service->agent_identity); g_free(service->ca_cert_file); + g_free(service->subject_match); + g_free(service->altsubject_match); + g_free(service->domain_suffix_match); + g_free(service->domain_match); g_free(service->client_cert_file); g_free(service->private_key_file); g_free(service->private_key_passphrase); @@ -6138,8 +6365,8 @@ static gint service_compare(gconstpointer a, gconstpointer b) state_a = service_a->state; state_b = service_b->state; - a_connected = is_connected(service_a); - b_connected = is_connected(service_b); + a_connected = is_connected(state_a); + b_connected = is_connected(state_b); if (a_connected && b_connected) { if (service_a->order > service_b->order) @@ -6164,9 +6391,9 @@ static gint service_compare(gconstpointer a, gconstpointer b) if (b_connected) return 1; - if (is_connecting(service_a)) + if (is_connecting(state_a)) return -1; - if (is_connecting(service_b)) + if (is_connecting(state_b)) return 1; } @@ -6177,6 +6404,20 @@ static gint service_compare(gconstpointer a, gconstpointer b) return 1; if (service_a->type != service_b->type) { + unsigned int *tech_array; + int i; + + tech_array = connman_setting_get_uint_list( + "PreferredTechnologies"); + if (tech_array) { + for (i = 0; tech_array[i]; i++) { + if (tech_array[i] == service_a->type) + return -1; + + if (tech_array[i] == service_b->type) + return 1; + } + } if (service_a->type == CONNMAN_SERVICE_TYPE_ETHERNET) return -1; @@ -6224,6 +6465,12 @@ static void service_list_sort(void) } } +int __connman_service_compare(const struct connman_service *a, + const struct connman_service *b) +{ + return service_compare(a, b); +} + /** * connman_service_get_type: * @service: service structure @@ -6275,7 +6522,7 @@ bool __connman_service_is_user_allowed(enum connman_service_type type, if (service->type != type) continue; - if (is_connected(service)) { + if (is_connected(service->state)) { owner_user = service->user.favorite_user; break; } @@ -6345,14 +6592,12 @@ bool __connman_service_is_connected_state(struct connman_service *service, case CONNMAN_IPCONFIG_TYPE_UNKNOWN: break; case CONNMAN_IPCONFIG_TYPE_IPV4: - return is_connected_state(service, service->state_ipv4); + return is_connected(service->state_ipv4); case CONNMAN_IPCONFIG_TYPE_IPV6: - return is_connected_state(service, service->state_ipv6); + return is_connected(service->state_ipv6); case CONNMAN_IPCONFIG_TYPE_ALL: - return is_connected_state(service, - CONNMAN_IPCONFIG_TYPE_IPV4) && - is_connected_state(service, - CONNMAN_IPCONFIG_TYPE_IPV6); + return is_connected(service->state_ipv4) && + is_connected(service->state_ipv6); } return false; @@ -6415,7 +6660,7 @@ int __connman_service_get_connected_count_of_iface( index2 = __connman_service_get_index(service2); - if (is_connected(service2) && index2 > 0 && index1 == index2) + if (is_connected(service2->state) && index2 > 0 && index1 == index2) count++; index2 = 0; @@ -6535,9 +6780,24 @@ void __connman_service_set_string(struct connman_service *service, } else if (g_str_equal(key, "Identity")) { g_free(service->identity); service->identity = g_strdup(value); + } else if (g_str_equal(key, "AnonymousIdentity")) { + g_free(service->anonymous_identity); + service->anonymous_identity = g_strdup(value); } else if (g_str_equal(key, "CACertFile")) { g_free(service->ca_cert_file); service->ca_cert_file = g_strdup(value); + } else if (g_str_equal(key, "SubjectMatch")) { + g_free(service->subject_match); + service->subject_match = g_strdup(value); + } else if (g_str_equal(key, "AltSubjectMatch")) { + g_free(service->altsubject_match); + service->altsubject_match = g_strdup(value); + } else if (g_str_equal(key, "DomainSuffixMatch")) { + g_free(service->domain_suffix_match); + service->domain_suffix_match = g_strdup(value); + } else if (g_str_equal(key, "DomainMatch")) { + g_free(service->domain_match); + service->domain_match = g_strdup(value); } else if (g_str_equal(key, "ClientCertFile")) { g_free(service->client_cert_file); service->client_cert_file = g_strdup(value); @@ -6567,17 +6827,6 @@ void __connman_service_set_search_domains(struct connman_service *service, searchdomain_add_all(service); } -static void service_complete(struct connman_service *service) -{ - reply_pending(service, EIO); - - if (service->connect_reason != CONNMAN_SERVICE_CONNECT_REASON_USER) - __connman_service_auto_connect(service->connect_reason); - - g_get_current_time(&service->modified); - service_save(service); -} - static void report_error_cb(void *user_context, bool retry, void *user_data) { @@ -6657,7 +6906,8 @@ static void request_input_cb(struct connman_service *service, if (service->hidden) __connman_service_return_error(service, - ECANCELED, user_data); + ECONNABORTED, + user_data); goto done; } else { if (service->hidden) @@ -6738,7 +6988,7 @@ static void downgrade_connected_services(void) for (list = service_list; list; list = list->next) { up_service = list->data; - if (!is_connected(up_service)) + if (!is_connected(up_service->state)) continue; if (up_service->state == CONNMAN_SERVICE_STATE_ONLINE) @@ -6781,7 +7031,7 @@ static int service_update_preferred_order(struct connman_service *default_servic #if defined TIZEN_EXT static gboolean __connman_service_can_drop(struct connman_service *service) { - if (is_connected(service) == TRUE || is_connecting(service) == TRUE) { + if (is_connected(service->state) == TRUE || is_connecting(service->state) == TRUE) { if (service->type != CONNMAN_SERVICE_TYPE_CELLULAR) return TRUE; else if (connman_service_is_no_ref_user_pdn_connection(service) == TRUE) @@ -6849,7 +7099,7 @@ static void __connman_service_connect_default(struct connman_service *current) } return; - } else if (is_connected(current) == TRUE || is_connecting(current) == TRUE) + } else if (is_connected(current->state) == TRUE || is_connecting(current->state) == TRUE) return; /* Always-on: keep default cellular connection as possible */ @@ -6871,8 +7121,8 @@ static void __connman_service_connect_default(struct connman_service *current) if (default_internet) { default_service = service; - if (is_connected(default_service) == TRUE || - is_connecting(default_service) == TRUE) + if (is_connected(default_service->state) == TRUE || + is_connecting(default_service->state) == TRUE) return; default_device = connman_network_get_device(default_service->network); @@ -6918,7 +7168,7 @@ static void single_connected_tech(struct connman_service *allowed) if (service != allowed && service->type != allowed->type && __connman_service_can_drop(service) == TRUE) #else - if (!is_connected(service)) + if (!is_connected(service->state)) break; if (service == allowed) @@ -6949,7 +7199,7 @@ static void set_priority_connected_service(void) for (list = service_list; list; list = list->next) { service = list->data; - if (is_connected(service) == FALSE) + if (is_connected(service->state) == FALSE) service->order = 5; else service->order = 6; @@ -7000,13 +7250,15 @@ static int service_indicate_state(struct connman_service *service) if (old_state == CONNMAN_SERVICE_STATE_ONLINE) __connman_notifier_leave_online(service->type); - if (is_connected_state(service, old_state) && - !is_connected_state(service, new_state)) + if (is_connected(old_state) && !is_connected(new_state)) searchdomain_remove_all(service); service->state = new_state; state_changed(service); + if (!is_connected(old_state) && is_connected(new_state)) + searchdomain_add_all(service); + switch(new_state) { case CONNMAN_SERVICE_STATE_UNKNOWN: @@ -7065,17 +7317,6 @@ static int service_indicate_state(struct connman_service *service) reply_pending(service, 0); - g_get_current_time(&service->modified); - service_save(service); - - searchdomain_add_all(service); - dns_changed(service); - domain_changed(service); - proxy_changed(service); - - if (old_state != CONNMAN_SERVICE_STATE_ONLINE) - __connman_notifier_connect(service->type); - if (service->type == CONNMAN_SERVICE_TYPE_WIFI && connman_network_get_bool(service->network, "WiFi.UseWPS")) { @@ -7090,6 +7331,15 @@ static int service_indicate_state(struct connman_service *service) "WiFi.UseWPS", false); } + g_get_current_time(&service->modified); + service_save(service); + + domain_changed(service); + proxy_changed(service); + + if (old_state != CONNMAN_SERVICE_STATE_ONLINE) + __connman_notifier_connect(service->type); + method = __connman_ipconfig_get_method(service->ipconfig_ipv6); if (method == CONNMAN_IPCONFIG_METHOD_OFF) __connman_ipconfig_disable_ipv6( @@ -7140,7 +7390,6 @@ static int service_indicate_state(struct connman_service *service) __connman_service_get_connected_count_of_iface( service) <= 0) { #endif - dns_changed(service); domain_changed(service); proxy_changed(service); #if defined TIZEN_EXT @@ -7159,9 +7408,6 @@ static int service_indicate_state(struct connman_service *service) case CONNMAN_SERVICE_STATE_FAILURE: #if defined TIZEN_EXT - - service->assoc_status_code = connman_network_get_assoc_status_code(service->network); - if (service->type == CONNMAN_SERVICE_TYPE_WIFI) service->order = 5; __connman_service_auto_connect(CONNMAN_SERVICE_CONNECT_REASON_AUTO); @@ -7289,7 +7535,7 @@ int __connman_service_indicate_default(struct connman_service *service) { DBG("service %p state %s", service, state2string(service->state)); - if (!is_connected(service)) { + if (!is_connected(service->state)) { /* * If service is not yet fully connected, then we must not * change the default yet. The default gw will be changed @@ -7483,6 +7729,26 @@ int __connman_service_ipconfig_indicate_state(struct connman_service *service, if (!ipconfig) return -EINVAL; + method = __connman_ipconfig_get_method(ipconfig); + + switch (method) { + case CONNMAN_IPCONFIG_METHOD_UNKNOWN: + case CONNMAN_IPCONFIG_METHOD_OFF: + if (new_state != CONNMAN_SERVICE_STATE_IDLE) + connman_warn("ipconfig state %d ipconfig method %d", + new_state, method); + + new_state = CONNMAN_SERVICE_STATE_IDLE; + break; + + case CONNMAN_IPCONFIG_METHOD_FIXED: + case CONNMAN_IPCONFIG_METHOD_MANUAL: + case CONNMAN_IPCONFIG_METHOD_DHCP: + case CONNMAN_IPCONFIG_METHOD_AUTO: + break; + + } + /* Any change? */ if (old_state == new_state) return -EALREADY; @@ -7507,11 +7773,9 @@ int __connman_service_ipconfig_indicate_state(struct connman_service *service, switch (new_state) { case CONNMAN_SERVICE_STATE_UNKNOWN: - case CONNMAN_SERVICE_STATE_IDLE: case CONNMAN_SERVICE_STATE_ASSOCIATION: break; case CONNMAN_SERVICE_STATE_CONFIGURATION: - __connman_ipconfig_enable(ipconfig); break; case CONNMAN_SERVICE_STATE_READY: #if defined TIZEN_EXT @@ -7523,15 +7787,20 @@ int __connman_service_ipconfig_indicate_state(struct connman_service *service, break; } #endif - if (type == CONNMAN_IPCONFIG_TYPE_IPV4) { + if (connman_setting_get_bool("EnableOnlineCheck")) { + if (type == CONNMAN_IPCONFIG_TYPE_IPV4) { #if !defined TIZEN_EXT - check_proxy_setup(service); + check_proxy_setup(service); #endif + } else { + service->online_check_count = 1; + __connman_wispr_start(service, type); + } + } else + connman_info("Online check disabled. " + "Default service remains in READY state."); + if (type == CONNMAN_IPCONFIG_TYPE_IPV4) service_rp_filter(service, true); - } else { - service->online_check_count = 1; - __connman_wispr_start(service, type); - } break; case CONNMAN_SERVICE_STATE_ONLINE: break; @@ -7543,59 +7812,26 @@ int __connman_service_ipconfig_indicate_state(struct connman_service *service, service_rp_filter(service, false); break; + + case CONNMAN_SERVICE_STATE_IDLE: case CONNMAN_SERVICE_STATE_FAILURE: - break; - } + __connman_ipconfig_disable(ipconfig); - /* Keep that state, but if the ipconfig method is OFF, then we set - the state to IDLE so that it will not affect the combined state - in the future. - */ - method = __connman_ipconfig_get_method(ipconfig); - switch (method) { - case CONNMAN_IPCONFIG_METHOD_UNKNOWN: - case CONNMAN_IPCONFIG_METHOD_OFF: - new_state = CONNMAN_SERVICE_STATE_IDLE; break; - - case CONNMAN_IPCONFIG_METHOD_FIXED: - case CONNMAN_IPCONFIG_METHOD_MANUAL: - case CONNMAN_IPCONFIG_METHOD_DHCP: - case CONNMAN_IPCONFIG_METHOD_AUTO: - break; - } - if (is_connected_state(service, old_state) && - !is_connected_state(service, new_state)) -#if defined TIZEN_EXT - { - DBG("nameserver remove all, type: %d", type); + if (is_connected(old_state) && !is_connected(new_state)) nameserver_remove_all(service, type); -#else - nameserver_remove_all(service); -#endif -#if defined TIZEN_EXT - } -#endif if (type == CONNMAN_IPCONFIG_TYPE_IPV4) service->state_ipv4 = new_state; else service->state_ipv6 = new_state; - if (!is_connected_state(service, old_state) && - is_connected_state(service, new_state)) -#if defined TIZEN_EXT - { - DBG("nameserver add all, type: %d", type); + if (!is_connected(old_state) && is_connected(new_state)) nameserver_add_all(service, type); -#else - nameserver_add_all(service); -#endif -#if defined TIZEN_EXT - } -#endif + + __connman_timeserver_sync(service); #if defined TIZEN_EXT int ret = service_indicate_state(service); @@ -7654,10 +7890,31 @@ static void prepare_8021x(struct connman_service *service) connman_network_set_string(service->network, "WiFi.Identity", service->identity); + if (service->anonymous_identity) + connman_network_set_string(service->network, + "WiFi.AnonymousIdentity", + service->anonymous_identity); + if (service->ca_cert_file) connman_network_set_string(service->network, "WiFi.CACertFile", service->ca_cert_file); + if (service->subject_match) + connman_network_set_string(service->network, "WiFi.SubjectMatch", + service->subject_match); + + if (service->altsubject_match) + connman_network_set_string(service->network, "WiFi.AltSubjectMatch", + service->altsubject_match); + + if (service->domain_suffix_match) + connman_network_set_string(service->network, "WiFi.DomainSuffixMatch", + service->domain_suffix_match); + + if (service->domain_match) + connman_network_set_string(service->network, "WiFi.DomainMatch", + service->domain_match); + if (service->client_cert_file) connman_network_set_string(service->network, "WiFi.ClientCertFile", @@ -7697,7 +7954,7 @@ static int service_connect(struct connman_service *service) if (service->type == CONNMAN_SERVICE_TYPE_CELLULAR) break; - if (!is_connecting(temp) && !is_connected(temp)) + if (!is_connecting(temp->state) && !is_connected(temp->state)) break; if (service == temp) @@ -7813,22 +8070,22 @@ static int service_connect(struct connman_service *service) &service->stats_roaming.data); } - if (service->ipconfig_ipv4) - __connman_ipconfig_enable(service->ipconfig_ipv4); - if (service->ipconfig_ipv6) - __connman_ipconfig_enable(service->ipconfig_ipv6); - err = __connman_network_connect(service->network); } else if (service->type == CONNMAN_SERVICE_TYPE_VPN && service->provider) - err = __connman_provider_connect(service->provider); + err = __connman_provider_connect(service->provider, + get_dbus_sender(service)); else return -EOPNOTSUPP; if (err < 0) { if (err != -EINPROGRESS) { - __connman_ipconfig_disable(service->ipconfig_ipv4); - __connman_ipconfig_disable(service->ipconfig_ipv6); + __connman_service_ipconfig_indicate_state(service, + CONNMAN_SERVICE_STATE_FAILURE, + CONNMAN_IPCONFIG_TYPE_IPV4); + __connman_service_ipconfig_indicate_state(service, + CONNMAN_SERVICE_STATE_FAILURE, + CONNMAN_IPCONFIG_TYPE_IPV6); __connman_stats_service_unregister(service); } } @@ -7846,10 +8103,10 @@ int __connman_service_connect(struct connman_service *service, reason2string(service->connect_reason), reason2string(reason)); - if (is_connected(service)) + if (is_connected(service->state)) return -EISCONN; - if (is_connecting(service)) + if (is_connecting(service->state)) return -EALREADY; switch (service->type) { @@ -7875,6 +8132,8 @@ int __connman_service_connect(struct connman_service *service, err = service_connect(service); + DBG("service %p err %d", service, err); + service->connect_reason = reason; if (err >= 0) return 0; @@ -7896,6 +8155,7 @@ int __connman_service_connect(struct connman_service *service, if (service->connect_reason == CONNMAN_SERVICE_CONNECT_REASON_USER) { if (err == -ENOKEY || err == -EPERM) { DBusMessage *pending = NULL; + const char *dbus_sender = get_dbus_sender(service); /* * We steal the reply here. The idea is that the @@ -7910,7 +8170,7 @@ int __connman_service_connect(struct connman_service *service, err = __connman_agent_request_passphrase_input(service, request_input_cb, - get_dbus_sender(service), + dbus_sender, pending); if (service->hidden && err != -EINPROGRESS) service->pending = pending; @@ -7992,7 +8252,7 @@ int __connman_service_disconnect_all(void) for (iter = service_list; iter; iter = iter->next) { service = iter->data; - if (!is_connected(service)) + if (!is_connected(service->state)) break; services = g_slist_prepend(services, service); @@ -8022,6 +8282,11 @@ static struct connman_service *lookup_by_identifier(const char *identifier) return g_hash_table_lookup(service_hash, identifier); } +struct connman_service *connman_service_lookup_from_identifier(const char* identifier) +{ + return lookup_by_identifier(identifier); +} + struct provision_user_data { const char *ident; int ret; @@ -8172,12 +8437,6 @@ static void service_lower_down(struct connman_ipconfig *ipconfig, DBG("%s lower down", ifname); - if (!is_idle_state(service, service->state_ipv4)) - __connman_ipconfig_disable(service->ipconfig_ipv4); - - if (!is_idle_state(service, service->state_ipv6)) - __connman_ipconfig_disable(service->ipconfig_ipv6); - stats_stop(service); service_save(service); } @@ -8206,9 +8465,8 @@ static void service_ip_bound(struct connman_ipconfig *ipconfig, { err = __connman_ipconfig_gateway_add(ipconfig, service); - if(err == 0) - __connman_connection_gateway_activate(service, - CONNMAN_IPCONFIG_TYPE_IPV6); + if(err < 0) + DBG("Failed to add gateway"); } #else __connman_service_ipconfig_indicate_state(service, @@ -8217,6 +8475,7 @@ static void service_ip_bound(struct connman_ipconfig *ipconfig, #endif settings_changed(service, ipconfig); + address_updated(service, type); } static void service_ip_release(struct connman_ipconfig *ipconfig, @@ -8491,12 +8750,6 @@ unsigned int __connman_service_get_order(struct connman_service *service) return order; } -void __connman_service_update_ordering(void) -{ - if (service_list && service_list->next) - service_list = g_list_sort(service_list, service_compare); -} - static enum connman_service_type convert_network_type(struct connman_network *network) { enum connman_network_type type = connman_network_get_type(network); @@ -8557,7 +8810,7 @@ int check_passphrase_ext(struct connman_network *network, str = connman_network_get_string(network, "WiFi.Security"); security = convert_wifi_security(str); - return check_passphrase(security, passphrase); + return __connman_service_check_passphrase(security, passphrase); } #endif @@ -8569,10 +8822,10 @@ static void update_from_network(struct connman_service *service, DBG("service %p network %p", service, network); - if (is_connected(service)) + if (is_connected(service->state)) return; - if (is_connecting(service)) + if (is_connecting(service->state)) return; str = connman_network_get_string(network, "Name"); @@ -8704,6 +8957,7 @@ struct connman_service * __connman_service_create_from_network(struct connman_ne service->ipconfig_ipv6 = create_ip6config(service, index); service_register(service); + service_schedule_added(service); if (service->favorite) { device = connman_network_get_device(service->network); @@ -8749,7 +9003,6 @@ struct connman_service * __connman_service_create_from_network(struct connman_ne } __connman_notifier_service_add(service, service->name); - service_schedule_added(service); return service; } @@ -9012,6 +9265,8 @@ int __connman_service_init(void) return err; } + set_always_connecting_technologies(); + connection = connman_dbus_get_connection(); service_hash = g_hash_table_new_full(g_str_hash, g_str_equal, @@ -9055,9 +9310,10 @@ void __connman_service_cleanup(void) if (services_notify->id != 0) { g_source_remove(services_notify->id); service_send_changed(NULL); - g_hash_table_destroy(services_notify->remove); - g_hash_table_destroy(services_notify->add); } + + g_hash_table_destroy(services_notify->remove); + g_hash_table_destroy(services_notify->add); g_free(services_notify); dbus_connection_unref(connection); diff --git a/src/session.c b/src/session.c index 08facc1d..9e3c5594 100755 --- a/src/session.c +++ b/src/session.c @@ -37,13 +37,6 @@ static GHashTable *session_hash; static GHashTable *service_hash; static struct connman_session *ecall_session; static uint32_t session_mark = 256; -static struct firewall_context *global_firewall = NULL; - -enum connman_session_state { - CONNMAN_SESSION_STATE_DISCONNECTED = 0, - CONNMAN_SESSION_STATE_CONNECTED = 1, - CONNMAN_SESSION_STATE_ONLINE = 2, -}; struct session_info { struct connman_session_config config; @@ -64,6 +57,7 @@ struct connman_session { struct connman_service *service_last; struct connman_session_config *policy_config; GSList *user_allowed_bearers; + char *user_allowed_interface; bool ecall; @@ -73,6 +67,7 @@ struct connman_session { int index; char *gateway; bool policy_routing; + bool snat_enabled; }; struct connman_service_info { @@ -80,6 +75,15 @@ struct connman_service_info { GSList *sessions; }; +struct fw_snat { + GSList *sessions; + int id; + int index; + struct firewall_context *fw; +}; + +GSList *fw_snat_list; + static struct connman_session_policy *policy; static void session_activate(struct connman_session *session); static void session_deactivate(struct connman_session *session); @@ -196,102 +200,109 @@ static char *service2bearer(enum connman_service_type type) return ""; } -static int init_firewall(void) +static struct fw_snat *fw_snat_lookup(int index) { - struct firewall_context *fw; - int err; + struct fw_snat *fw_snat; + GSList *list; - if (global_firewall) - return 0; + for (list = fw_snat_list; list; list = list->next) { + fw_snat = list->data; - fw = __connman_firewall_create(); + if (fw_snat->index == index) + return fw_snat; + } + return NULL; +} - err = __connman_firewall_add_rule(fw, "mangle", "INPUT", - "-j CONNMARK --restore-mark"); - if (err < 0) - goto err; +static int fw_snat_create(struct connman_session *session, + int index, const char *ifname, const char *addr) +{ + struct fw_snat *fw_snat; + int err; - err = __connman_firewall_add_rule(fw, "mangle", "POSTROUTING", - "-j CONNMARK --save-mark"); - if (err < 0) - goto err; + fw_snat = g_new0(struct fw_snat, 1); - err = __connman_firewall_enable(fw); - if (err < 0) + fw_snat->fw = __connman_firewall_create(); + fw_snat->index = index; + + fw_snat->id = __connman_firewall_enable_snat(fw_snat->fw, + index, ifname, addr); + if (fw_snat->id < 0) { + err = fw_snat->id; goto err; + } - global_firewall = fw; + fw_snat_list = g_slist_prepend(fw_snat_list, fw_snat); + fw_snat->sessions = g_slist_prepend(fw_snat->sessions, session); return 0; - err: - __connman_firewall_destroy(fw); - + __connman_firewall_destroy(fw_snat->fw); + g_free(fw_snat); return err; } -static void cleanup_firewall(void) +static void fw_snat_ref(struct connman_session *session, + struct fw_snat *fw_snat) { - if (!global_firewall) + if (g_slist_find(fw_snat->sessions, session)) return; + fw_snat->sessions = g_slist_prepend(fw_snat->sessions, session); +} - __connman_firewall_disable(global_firewall); - __connman_firewall_destroy(global_firewall); +static void fw_snat_unref(struct connman_session *session, + struct fw_snat *fw_snat) +{ + fw_snat->sessions = g_slist_remove(fw_snat->sessions, session); + if (fw_snat->sessions) + return; + + fw_snat_list = g_slist_remove(fw_snat_list, fw_snat); + + __connman_firewall_disable_snat(fw_snat->fw); + __connman_firewall_destroy(fw_snat->fw); + g_free(fw_snat); } static int init_firewall_session(struct connman_session *session) { struct firewall_context *fw; int err; + struct connman_ipconfig *ipconfig = NULL; + const char *addr = NULL; - if (session->policy_config->id_type == CONNMAN_SESSION_ID_TYPE_UNKNOWN) + if (session->policy_config->id_type == CONNMAN_SESSION_ID_TYPE_UNKNOWN && + !session->info->config.source_ip_rule) return 0; DBG(""); - err = init_firewall(); - if (err < 0) - return err; + if (session->info->config.source_ip_rule) { + ipconfig = __connman_service_get_ip4config(session->service); + if (session->policy_config->id_type == CONNMAN_SESSION_ID_TYPE_UNKNOWN && !ipconfig) + return 0; + } fw = __connman_firewall_create(); if (!fw) return -ENOMEM; - switch (session->policy_config->id_type) { - case CONNMAN_SESSION_ID_TYPE_UID: - err = __connman_firewall_add_rule(fw, "mangle", "OUTPUT", - "-m owner --uid-owner %s -j MARK --set-mark %d", - session->policy_config->id, - session->mark); - break; - case CONNMAN_SESSION_ID_TYPE_GID: - err = __connman_firewall_add_rule(fw, "mangle", "OUTPUT", - "-m owner --gid-owner %s -j MARK --set-mark %d", - session->policy_config->id, - session->mark); - break; - case CONNMAN_SESSION_ID_TYPE_LSM: - default: - err = -EINVAL; + if (session->info->config.source_ip_rule && ipconfig) { + addr = __connman_ipconfig_get_local(ipconfig); } - if (err < 0) - goto err; - + err =__connman_firewall_enable_marking(fw, + session->policy_config->id_type, + session->policy_config->id, + addr, session->mark); + if (err < 0) { + __connman_firewall_destroy(fw); + return err; + } session->id_type = session->policy_config->id_type; - - err = __connman_firewall_enable(fw); - if (err) - goto err; - session->fw = fw; return 0; - -err: - __connman_firewall_destroy(fw); - - return err; } static void cleanup_firewall_session(struct connman_session *session) @@ -299,7 +310,8 @@ static void cleanup_firewall_session(struct connman_session *session) if (!session->fw) return; - __connman_firewall_disable(session->fw); + __connman_firewall_disable_marking(session->fw); + __connman_firewall_disable_snat(session->fw); __connman_firewall_destroy(session->fw); session->fw = NULL; @@ -309,7 +321,11 @@ static int init_routing_table(struct connman_session *session) { int err; - if (session->policy_config->id_type == CONNMAN_SESSION_ID_TYPE_UNKNOWN) + if (session->policy_config->id_type == CONNMAN_SESSION_ID_TYPE_UNKNOWN && + !session->info->config.source_ip_rule) + return 0; + + if (!session->service) return 0; DBG(""); @@ -348,6 +364,7 @@ static void add_default_route(struct connman_session *session) { struct connman_ipconfig *ipconfig; int err; + struct in_addr addr = { INADDR_ANY }; if (!session->service) return; @@ -356,6 +373,9 @@ static void add_default_route(struct connman_session *session) session->index = __connman_ipconfig_get_index(ipconfig); session->gateway = g_strdup(__connman_ipconfig_get_gateway(ipconfig)); + if (!session->gateway) + session->gateway = g_strdup(inet_ntoa(addr)); + DBG("index %d routing table %d default gateway %s", session->index, session->mark, session->gateway); @@ -365,6 +385,62 @@ static void add_default_route(struct connman_session *session) DBG("session %p %s", session, strerror(-err)); } +static void del_nat_rules(struct connman_session *session) +{ + struct fw_snat *fw_snat; + + if (!session->snat_enabled) + return; + + session->snat_enabled = false; + fw_snat = fw_snat_lookup(session->index); + + if (!fw_snat) + return; + + fw_snat_unref(session, fw_snat); +} + +static void add_nat_rules(struct connman_session *session) +{ + struct connman_ipconfig *ipconfig; + struct fw_snat *fw_snat; + const char *addr; + int index, err; + char *ifname; + + if (!session->service) + return; + + ipconfig = __connman_service_get_ip4config(session->service); + index = __connman_ipconfig_get_index(ipconfig); + ifname = connman_inet_ifname(index); + addr = __connman_ipconfig_get_local(ipconfig); + + if (!addr) + return; + + session->snat_enabled = true; + fw_snat = fw_snat_lookup(index); + if (fw_snat) { + fw_snat_ref(session, fw_snat); + return; + } + + err = fw_snat_create(session, index, ifname, addr); + if (err < 0) { + DBG("failed to add SNAT rule"); + session->snat_enabled = false; + } + + g_free(ifname); +} + +uint32_t connman_session_firewall_get_fwmark(struct connman_session *session) +{ + return session->mark; +} + static void cleanup_routing_table(struct connman_session *session) { DBG(""); @@ -381,12 +457,24 @@ static void cleanup_routing_table(struct connman_session *session) del_default_route(session); } +static void update_firewall(struct connman_session *session) +{ + cleanup_firewall_session(session); + init_firewall_session(session); +} + static void update_routing_table(struct connman_session *session) { - del_default_route(session); + cleanup_routing_table(session); + init_routing_table(session); add_default_route(session); } +static void cleanup_nat_rules(struct connman_session *session) +{ + del_nat_rules(session); +} + static void destroy_policy_config(struct connman_session *session) { if (!policy) { @@ -407,6 +495,7 @@ static void free_session(struct connman_session *session) destroy_policy_config(session); g_slist_free(session->info->config.allowed_bearers); + g_free(session->info->config.allowed_interface); g_free(session->owner); g_free(session->session_path); g_free(session->notify_path); @@ -434,6 +523,7 @@ static void cleanup_session(gpointer user_data) DBG("remove %s", session->session_path); + cleanup_nat_rules(session); cleanup_routing_table(session); cleanup_firewall_session(session); @@ -444,6 +534,7 @@ static void cleanup_session(gpointer user_data) update_session_state(session); g_slist_free(session->user_allowed_bearers); + g_free(session->user_allowed_interface); free_session(session); } @@ -455,6 +546,8 @@ struct creation_data { /* user config */ enum connman_session_type type; GSList *allowed_bearers; + char *allowed_interface; + bool source_ip_rule; }; static void cleanup_creation_data(struct creation_data *creation_data) @@ -466,6 +559,7 @@ static void cleanup_creation_data(struct creation_data *creation_data) dbus_message_unref(creation_data->pending); g_slist_free(creation_data->allowed_bearers); + g_free(creation_data->allowed_interface); g_free(creation_data); } @@ -543,6 +637,7 @@ void connman_session_set_default_config(struct connman_session_config *config) config->ecall = FALSE; g_slist_free(config->allowed_bearers); + config->allowed_bearers = NULL; add_default_bearer_types(&config->allowed_bearers); } @@ -628,18 +723,18 @@ static int parse_bearers(DBusMessageIter *iter, GSList **list) return 0; } -static void filter_bearer(GSList *policy_bearers, - enum connman_service_type bearer, +static void filter_bearer(GSList *bearers, + enum connman_service_type policy, GSList **list) { - enum connman_service_type policy; + enum connman_service_type bearer; GSList *it; - if (!policy_bearers) + if (!bearers) return; - for (it = policy_bearers; it; it = it->next) { - policy = GPOINTER_TO_INT(it->data); + for (it = bearers; it; it = it->next) { + bearer = GPOINTER_TO_INT(it->data); if (policy != bearer) continue; @@ -652,18 +747,29 @@ static void filter_bearer(GSList *policy_bearers, static void apply_policy_on_bearers(GSList *policy_bearers, GSList *bearers, GSList **list) { - enum connman_service_type bearer; + enum connman_service_type policy_bearer; GSList *it; *list = NULL; - for (it = bearers; it; it = it->next) { - bearer = GPOINTER_TO_INT(it->data); + for (it = policy_bearers; it; it = it->next) { + policy_bearer = GPOINTER_TO_INT(it->data); - filter_bearer(policy_bearers, bearer, list); + filter_bearer(bearers, policy_bearer, list); } } +static char * apply_policy_on_interface(const char *policy_interface, + const char *user_interface) +{ + if (policy_interface) + return g_strdup(policy_interface); + else if (user_interface) + return g_strdup(user_interface); + else + return NULL; +} + const char *connman_session_get_owner(struct connman_session *session) { return session->owner; @@ -809,6 +915,28 @@ static void append_notify(DBusMessageIter *dict, info_last->config.allowed_bearers = info->config.allowed_bearers; } + if (session->append_all || + info->config.allowed_interface != info_last->config.allowed_interface) { + char *ifname = info->config.allowed_interface; + if (!ifname) + ifname = "*"; + connman_dbus_dict_append_basic(dict, "AllowedInterface", + DBUS_TYPE_STRING, + &ifname); + info_last->config.allowed_interface = info->config.allowed_interface; + } + + if (session->append_all || + info->config.source_ip_rule != info_last->config.source_ip_rule) { + dbus_bool_t source_ip_rule = FALSE; + if (info->config.source_ip_rule) + source_ip_rule = TRUE; + connman_dbus_dict_append_basic(dict, "SourceIPRule", + DBUS_TYPE_BOOLEAN, + &source_ip_rule); + info_last->config.source_ip_rule = info->config.source_ip_rule; + } + session->append_all = false; } @@ -828,7 +956,9 @@ static bool compute_notifiable_changes(struct connman_session *session) return true; if (info->config.allowed_bearers != info_last->config.allowed_bearers || - info->config.type != info_last->config.type) + info->config.type != info_last->config.type || + info->config.allowed_interface != info_last->config.allowed_interface || + info->config.source_ip_rule != info_last->config.source_ip_rule) return true; return false; @@ -882,6 +1012,7 @@ int connman_session_config_update(struct connman_session *session) { struct session_info *info = session->info; GSList *allowed_bearers; + char *allowed_interface; int err; DBG("session %p", session); @@ -907,6 +1038,10 @@ int connman_session_config_update(struct connman_session *session) session->user_allowed_bearers, &allowed_bearers); + allowed_interface = apply_policy_on_interface( + session->policy_config->allowed_interface, + session->user_allowed_interface); + if (session->active) set_active_session(session, false); @@ -916,6 +1051,9 @@ int connman_session_config_update(struct connman_session *session) g_slist_free(info->config.allowed_bearers); info->config.allowed_bearers = allowed_bearers; + g_free(info->config.allowed_interface); + info->config.allowed_interface = allowed_interface; + session_activate(session); info->config.type = apply_policy_on_type( @@ -1024,6 +1162,7 @@ static DBusMessage *change_session(DBusConnection *conn, session->active = false; session_deactivate(session); + update_session_state(session); g_slist_free(info->config.allowed_bearers); session->user_allowed_bearers = allowed_bearers; @@ -1044,6 +1183,38 @@ static DBusMessage *change_session(DBusConnection *conn, info->config.type = apply_policy_on_type( session->policy_config->type, connman_session_parse_connection_type(val)); + } else if (g_str_equal(name, "AllowedInterface")) { + dbus_message_iter_get_basic(&value, &val); + if (session->active) + set_active_session(session, false); + + session->active = false; + session_deactivate(session); + update_session_state(session); + + g_free(session->user_allowed_interface); + /* empty string means allow any interface */ + if (!g_strcmp0(val, "")) + session->user_allowed_interface = NULL; + else + session->user_allowed_interface = g_strdup(val); + + info->config.allowed_interface = apply_policy_on_interface( + session->policy_config->allowed_interface, + session->user_allowed_interface); + + session_activate(session); + } else { + goto err; + } + break; + case DBUS_TYPE_BOOLEAN: + if (g_str_equal(name, "SourceIPRule")) { + dbus_bool_t source_ip_rule; + dbus_message_iter_get_basic(&value, &source_ip_rule); + + info->config.source_ip_rule = source_ip_rule; + update_session_state(session); } else { goto err; } @@ -1149,6 +1320,7 @@ static int session_policy_config_cb(struct connman_session *session, goto err; session->policy_config = config; + session->info->config.source_ip_rule = creation_data->source_ip_rule; session->mark = session_mark++; session->index = -1; @@ -1177,11 +1349,18 @@ static int session_policy_config_cb(struct connman_session *session, session->user_allowed_bearers = creation_data->allowed_bearers; creation_data->allowed_bearers = NULL; + session->user_allowed_interface = creation_data->allowed_interface; + creation_data->allowed_interface = NULL; + apply_policy_on_bearers( session->policy_config->allowed_bearers, session->user_allowed_bearers, &info->config.allowed_bearers); + info->config.allowed_interface = apply_policy_on_interface( + session->policy_config->allowed_interface, + session->user_allowed_interface); + g_hash_table_replace(session_hash, session->session_path, session); DBG("add %s", session->session_path); @@ -1206,6 +1385,8 @@ static int session_policy_config_cb(struct connman_session *session, info_last->config.priority = info->config.priority; info_last->config.roaming_policy = info->config.roaming_policy; info_last->config.allowed_bearers = info->config.allowed_bearers; + info_last->config.allowed_interface = info->config.allowed_interface; + info_last->config.source_ip_rule = info->config.source_ip_rule; session->append_all = true; @@ -1293,11 +1474,29 @@ int __connman_session_create(DBusMessage *msg) connman_session_parse_connection_type(val); user_connection_type = true; + } else if (g_str_equal(key, "AllowedInterface")) { + dbus_message_iter_get_basic(&value, &val); + creation_data->allowed_interface = g_strdup(val); } else { err = -EINVAL; goto err; } + break; + case DBUS_TYPE_BOOLEAN: + if (g_str_equal(key, "SourceIPRule")) { + dbus_bool_t source_ip_rule; + dbus_message_iter_get_basic(&value, &source_ip_rule); + creation_data->source_ip_rule = source_ip_rule; + } else { + err = -EINVAL; + goto err; + } + break; + default: + err = -EINVAL; + goto err; } + dbus_message_iter_next(&array); } @@ -1481,7 +1680,14 @@ static void update_session_state(struct connman_session *session) DBG("session %p state %s", session, state2string(state)); + update_firewall(session); + del_nat_rules(session); update_routing_table(session); + add_nat_rules(session); + + if (policy && policy->update_session_state) + policy->update_session_state(session, state); + session_notify(session); } @@ -1490,17 +1696,31 @@ static bool session_match_service(struct connman_session *session, { enum connman_service_type bearer_type; enum connman_service_type service_type; + enum connman_service_type current_service_type; GSList *list; + char *ifname; if (policy && policy->allowed) return policy->allowed(session, service); + current_service_type = connman_service_get_type(session->service); + for (list = session->info->config.allowed_bearers; list; list = list->next) { bearer_type = GPOINTER_TO_INT(list->data); service_type = connman_service_get_type(service); + ifname = connman_service_get_interface(service); - if (bearer_type == service_type) - return true; + if (bearer_type == current_service_type) + return false; + + if (bearer_type == service_type && + (session->info->config.allowed_interface == NULL || + !g_strcmp0(session->info->config.allowed_interface, "*") || + !g_strcmp0(session->info->config.allowed_interface, ifname))) { + g_free(ifname); + return true; + } + g_free(ifname); } return false; @@ -1521,6 +1741,7 @@ static bool is_session_connected(struct connman_session *session, case CONNMAN_SERVICE_STATE_READY: if (session->info->config.type == CONNMAN_SESSION_TYPE_INTERNET) return false; + /* fall through */ case CONNMAN_SERVICE_STATE_ONLINE: return true; } @@ -1536,6 +1757,40 @@ static void session_activate(struct connman_session *session) if (!service_hash) return; + if (policy && policy->get_service_for_session) { + struct connman_service *service; + struct connman_service_info *info; + GSList *service_list = NULL; + enum connman_service_state state = CONNMAN_SESSION_STATE_DISCONNECTED; + + g_hash_table_iter_init(&iter, service_hash); + + while (g_hash_table_iter_next(&iter, &key, &value)) { + struct connman_service_info *info = value; + state = __connman_service_get_state(info->service); + + if (is_session_connected(session, state)) + service_list = g_slist_prepend(service_list, + info->service); + } + + service_list = g_slist_reverse(service_list); + service = policy->get_service_for_session(session, service_list); + + if (service) { + info = g_hash_table_lookup(service_hash, service); + DBG("session %p add service %p", session, info->service); + + info->sessions = g_slist_prepend(info->sessions, + session); + session->service = info->service; + update_session_state(session); + } + + g_slist_free(service_list); + return; + } + g_hash_table_iter_init(&iter, service_hash); while (g_hash_table_iter_next(&iter, &key, &value)) { struct connman_service_info *info = value; @@ -1630,10 +1885,10 @@ static void handle_service_state_offline(struct connman_service *service, session->service = NULL; update_session_state(session); + session_activate(session); } } - static void service_state_changed(struct connman_service *service, enum connman_service_state state) { @@ -1693,7 +1948,7 @@ static void ipconfig_changed(struct connman_service *service, continue; if (session->service && session->service == service) { - update_routing_table(session); + update_session_state(session); if (type == CONNMAN_IPCONFIG_TYPE_IPV4) ipconfig_ipv4_changed(session); @@ -1730,12 +1985,6 @@ int __connman_session_init(void) service_hash = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, cleanup_service); - if (__connman_firewall_is_up()) { - err = init_firewall(); - if (err < 0) - return err; - } - return 0; } @@ -1746,8 +1995,6 @@ void __connman_session_cleanup(void) if (!connection) return; - cleanup_firewall(); - connman_notifier_unregister(&session_notifier); g_hash_table_foreach(session_hash, release_session, NULL); diff --git a/src/stats.c b/src/stats.c index 26343b13..663bc382 100755 --- a/src/stats.c +++ b/src/stats.c @@ -227,18 +227,14 @@ static void stats_free(gpointer user_data) munmap(file->addr, file->len); file->addr = NULL; - TFR(close(file->fd)); + close(file->fd); file->fd = -1; - if (file->history_name) { - g_free(file->history_name); - file->history_name = NULL; - } + g_free(file->history_name); + file->history_name = NULL; - if (file->name) { - g_free(file->name); - file->name = NULL; - } + g_free(file->name); + file->name = NULL; g_free(file); } @@ -377,7 +373,8 @@ static int stats_file_setup(struct stats_file *file) connman_error("fstat error %s for %s\n", strerror(errno), file->name); - TFR(close(file->fd)); + close(file->fd); + file->fd = -1; g_free(file->name); file->name = NULL; @@ -392,7 +389,8 @@ static int stats_file_setup(struct stats_file *file) err = stats_file_remap(file, size); if (err < 0) { - TFR(close(file->fd)); + close(file->fd); + file->fd = -1; g_free(file->name); file->name = NULL; @@ -621,7 +619,7 @@ static int stats_file_close_swap(struct stats_file *history_file, stats_file_unmap(history_file); stats_file_unmap(temp_file); - TFR(close(temp_file->fd)); + close(temp_file->fd); unlink(history_file->name); @@ -629,7 +627,7 @@ static int stats_file_close_swap(struct stats_file *history_file, unlink(temp_file->name); - TFR(close(history_file->fd)); + close(history_file->fd); stats_file_cleanup(history_file); stats_file_cleanup(temp_file); @@ -649,6 +647,9 @@ static int stats_file_history_update(struct stats_file *data_file) bzero(history_file, sizeof(struct stats_file)); bzero(temp_file, sizeof(struct stats_file)); + history_file->fd = -1; + temp_file->fd = -1; + err = stats_open(history_file, data_file->history_name); if (err < 0) return err; @@ -676,17 +677,6 @@ int __connman_stats_service_register(struct connman_service *service) DBG("service %p", service); - file = g_hash_table_lookup(stats_hash, service); - if (!file) { - file = g_try_new0(struct stats_file, 1); - if (!file) - return -ENOMEM; - - g_hash_table_insert(stats_hash, service, file); - } else { - return -EALREADY; - } - dir = g_strdup_printf("%s/%s", STORAGEDIR, __connman_service_get_ident(service)); @@ -703,6 +693,18 @@ int __connman_stats_service_register(struct connman_service *service) } g_free(dir); + file = g_hash_table_lookup(stats_hash, service); + if (!file) { + file = g_try_new0(struct stats_file, 1); + if (!file) + return -ENOMEM; + + file->fd = -1; + + g_hash_table_insert(stats_hash, service, file); + } else { + return -EALREADY; + } name = g_strdup_printf("%s/%s/data", STORAGEDIR, __connman_service_get_ident(service)); diff --git a/src/storage.c b/src/storage.c index 2da54d6c..50c8e955 100755 --- a/src/storage.c +++ b/src/storage.c @@ -44,8 +44,6 @@ static GKeyFile *storage_load(const char *pathname) GKeyFile *keyfile = NULL; GError *error = NULL; - DBG("Loading %s", pathname); - keyfile = g_key_file_new(); if (!g_key_file_load_from_file(keyfile, pathname, 0, &error)) { @@ -401,8 +401,7 @@ int connman_task_stop(struct connman_task *task) if (task->pid > 0) { kill(task->pid, SIGTERM); - g_timeout_add_seconds(0, check_kill, - GINT_TO_POINTER(task->pid)); + g_idle_add(check_kill, GINT_TO_POINTER(task->pid)); } return 0; diff --git a/src/technology.c b/src/technology.c index 408c99f1..5aea9f4f 100755 --- a/src/technology.c +++ b/src/technology.c @@ -225,22 +225,27 @@ static void tethering_changed(struct connman_technology *technology) technology_save(technology); } -void connman_technology_tethering_notify(struct connman_technology *technology, +int connman_technology_tethering_notify(struct connman_technology *technology, bool enabled) { + int err; + DBG("technology %p enabled %u", technology, enabled); if (technology->tethering == enabled) - return; + return -EALREADY; - technology->tethering = enabled; + if (enabled) { + err = __connman_tethering_set_enabled(); + if (err < 0) + return err; + } else + __connman_tethering_set_disabled(); + technology->tethering = enabled; tethering_changed(technology); - if (enabled) - __connman_tethering_set_enabled(); - else - __connman_tethering_set_disabled(); + return 0; } static int set_tethering(struct connman_technology *technology, @@ -250,11 +255,9 @@ static int set_tethering(struct connman_technology *technology, int err; const char *ident, *passphrase, *bridge; GSList *tech_drivers; - bool hidden; ident = technology->tethering_ident; passphrase = technology->tethering_passphrase; - hidden = technology->tethering_hidden; __sync_synchronize(); if (!technology->enabled) @@ -275,15 +278,13 @@ static int set_tethering(struct connman_technology *technology, continue; err = driver->set_tethering(technology, ident, passphrase, - bridge, enabled, hidden); + bridge, enabled); if (result == -EINPROGRESS) continue; - if (err == -EINPROGRESS || err == 0) { + if (err == -EINPROGRESS || err == 0) result = err; - continue; - } } return result; @@ -459,15 +460,31 @@ bool __connman_technology_get_offlinemode(void) static void connman_technology_save_offlinemode(void) { GKeyFile *keyfile; + GError *error = NULL; + bool offlinemode; keyfile = __connman_storage_load_global(); - if (!keyfile) + + if (!keyfile) { keyfile = g_key_file_new(); + g_key_file_set_boolean(keyfile, "global", + "OfflineMode", global_offlinemode); - g_key_file_set_boolean(keyfile, "global", + __connman_storage_save_global(keyfile); + } + else { + offlinemode = g_key_file_get_boolean(keyfile, "global", + "OfflineMode", &error); + + if (error || offlinemode != global_offlinemode) { + g_key_file_set_boolean(keyfile, "global", "OfflineMode", global_offlinemode); + if (error) + g_clear_error(&error); - __connman_storage_save_global(keyfile); + __connman_storage_save_global(keyfile); + } + } g_key_file_free(keyfile); @@ -865,7 +882,7 @@ static DBusMessage *set_property(DBusConnection *conn, struct connman_technology *technology = data; DBusMessageIter iter, value; const char *name; - int type; + int type, err; DBG("conn %p", conn); @@ -962,30 +979,21 @@ static DBusMessage *set_property(DBusConnection *conn, if (technology->type != CONNMAN_SERVICE_TYPE_WIFI) return __connman_error_not_supported(msg); - if (strlen(str) < 8 || strlen(str) > 63) { - if (g_str_equal(str, "")) { - technology->tethering_passphrase = NULL; + err = __connman_service_check_passphrase(CONNMAN_SERVICE_SECURITY_PSK, + str); + if (err < 0) + return __connman_error_passphrase_required(msg); - connman_dbus_property_changed_basic(technology->path, - CONNMAN_TECHNOLOGY_INTERFACE, - "TetheringPassphrase", - DBUS_TYPE_STRING, - &str); - } - else - return __connman_error_passphrase_required(msg); - } else { - if (g_strcmp0(technology->tethering_passphrase, str) != 0) { - g_free(technology->tethering_passphrase); - technology->tethering_passphrase = g_strdup(str); - technology_save(technology); + if (g_strcmp0(technology->tethering_passphrase, str) != 0) { + g_free(technology->tethering_passphrase); + technology->tethering_passphrase = g_strdup(str); + technology_save(technology); - connman_dbus_property_changed_basic(technology->path, - CONNMAN_TECHNOLOGY_INTERFACE, - "TetheringPassphrase", - DBUS_TYPE_STRING, - &technology->tethering_passphrase); - } + connman_dbus_property_changed_basic(technology->path, + CONNMAN_TECHNOLOGY_INTERFACE, + "TetheringPassphrase", + DBUS_TYPE_STRING, + &technology->tethering_passphrase); } } else if (g_str_equal(name, "Hidden")) { dbus_bool_t hidden; @@ -1178,6 +1186,10 @@ static DBusMessage *scan(DBusConnection *conn, DBusMessage *msg, void *data) DBG("technology %p request from %s", technology, dbus_message_get_sender(msg)); + if (technology->type == CONNMAN_SERVICE_TYPE_P2P && + !technology->enabled) + return __connman_error_permission_denied(msg); + dbus_message_ref(msg); #if !defined TIZEN_EXT technology->scan_pending = @@ -1423,6 +1435,13 @@ static void technology_put(struct connman_technology *technology) g_slist_free(technology->device_list); + if (technology->pending_reply) { + dbus_message_unref(technology->pending_reply); + technology->pending_reply = NULL; + g_source_remove(technology->pending_timeout); + technology->pending_timeout = 0; + } + g_free(technology->path); g_free(technology->regdom); g_free(technology->tethering_ident); diff --git a/src/tethering.c b/src/tethering.c index c0c97431..891ee51f 100755 --- a/src/tethering.c +++ b/src/tethering.c @@ -346,7 +346,7 @@ static void tethering_restart(struct connman_ippool *pool, void *user_data) __connman_tethering_set_enabled(); } -void __connman_tethering_set_enabled(void) +int __connman_tethering_set_enabled(void) { int index; int err; @@ -362,12 +362,12 @@ void __connman_tethering_set_enabled(void) DBG("enabled %d", tethering_enabled + 1); if (__sync_fetch_and_add(&tethering_enabled, 1) != 0) - return; + return 0; err = __connman_bridge_create(BRIDGE_NAME); if (err < 0) { __sync_fetch_and_sub(&tethering_enabled, 1); - return; + return -EOPNOTSUPP; } index = connman_inet_ifindex(BRIDGE_NAME); @@ -377,7 +377,7 @@ void __connman_tethering_set_enabled(void) connman_error("Fail to create IP pool"); __connman_bridge_remove(BRIDGE_NAME); __sync_fetch_and_sub(&tethering_enabled, 1); - return; + return -EADDRNOTAVAIL; } gateway = __connman_ippool_get_gateway(dhcp_ippool); @@ -393,7 +393,7 @@ void __connman_tethering_set_enabled(void) __connman_ippool_unref(dhcp_ippool); __connman_bridge_remove(BRIDGE_NAME); __sync_fetch_and_sub(&tethering_enabled, 1); - return; + return -EADDRNOTAVAIL; } ns = connman_setting_get_string_list("FallbackNameservers"); @@ -429,7 +429,7 @@ void __connman_tethering_set_enabled(void) __connman_ippool_unref(dhcp_ippool); __connman_bridge_remove(BRIDGE_NAME); __sync_fetch_and_sub(&tethering_enabled, 1); - return; + return -EOPNOTSUPP; } prefixlen = connman_ipaddress_calc_netmask_len(subnet_mask); @@ -441,7 +441,7 @@ void __connman_tethering_set_enabled(void) __connman_ippool_unref(dhcp_ippool); __connman_bridge_remove(BRIDGE_NAME); __sync_fetch_and_sub(&tethering_enabled, 1); - return; + return -EOPNOTSUPP; } err = __connman_ipv6pd_setup(BRIDGE_NAME); @@ -450,6 +450,8 @@ void __connman_tethering_set_enabled(void) strerror(-err)); DBG("tethering started"); + + return 0; } void __connman_tethering_set_disabled(void) @@ -670,6 +672,8 @@ error: close(fd); g_free(iface); g_free(path); + if (pn) + g_free(pn->owner); g_free(pn); return err; } diff --git a/src/timeserver.c b/src/timeserver.c index fc83f9ae..6325eceb 100755 --- a/src/timeserver.c +++ b/src/timeserver.c @@ -305,6 +305,8 @@ static void ts_recheck_enable(void) int __connman_timeserver_sync(struct connman_service *default_service) { struct connman_service *service; + char **nameservers; + int i; if (default_service) service = default_service; @@ -328,6 +330,17 @@ int __connman_timeserver_sync(struct connman_service *default_service) if (resolv_id > 0) g_resolv_cancel_lookup(resolv, resolv_id); + g_resolv_flush_nameservers(resolv); + + nameservers = connman_service_get_nameservers(service); + if (!nameservers) + return -EINVAL; + + for (i = 0; nameservers[i]; i++) + g_resolv_add_nameserver(resolv, nameservers[i], 53, 0); + + g_strfreev(nameservers); + g_slist_free_full(ts_list, g_free); ts_list = __connman_timeserver_get_all(service); @@ -36,19 +36,24 @@ #define URANDOM "/dev/urandom" -int f = -1; +static int f = -1; int __connman_util_get_random(uint64_t *val) { - int r = 0; + int r; if (!val) return -EINVAL; - if (read(f, val, sizeof(uint64_t)) < 0) { + r = read(f, val, sizeof(uint64_t)); + if (r < 0) { r = -errno; connman_warn_once("Could not read from "URANDOM); *val = random(); + } else if (r != sizeof(uint64_t)) { + r = -EIO; + connman_warn_once("Short read from "URANDOM); + *val = random(); } return r; @@ -58,7 +63,7 @@ int __connman_util_init(void) { int r = 0; - if (f > 0) + if (f >= 0) return 0; f = open(URANDOM, O_RDONLY); @@ -81,7 +86,7 @@ int __connman_util_init(void) void __connman_util_cleanup(void) { - if (f > 0) + if (f >= 0) close(f); f = -1; diff --git a/src/wispr.c b/src/wispr.c index c3b0c9c9..adf62303 100755 --- a/src/wispr.c +++ b/src/wispr.c @@ -832,8 +832,8 @@ static int wispr_portal_detect(struct connman_wispr_portal_context *wp_context) int err = 0; int i; - DBG("wispr/portal context %p", wp_context); - DBG("service %p", wp_context->service); + DBG("wispr/portal context %p service %p", wp_context, + wp_context->service); service_type = connman_service_get_type(wp_context->service); @@ -908,8 +908,7 @@ static int wispr_portal_detect(struct connman_wispr_portal_context *wp_context) free_connman_wispr_portal_context(wp_context); } } else if (wp_context->timeout == 0) { - wp_context->timeout = - g_timeout_add_seconds(0, no_proxy_callback, wp_context); + wp_context->timeout = g_idle_add(no_proxy_callback, wp_context); } done: @@ -49,6 +49,8 @@ static void free_wpad(gpointer data) { struct connman_wpad *wpad = data; + connman_service_unref(wpad->service); + g_resolv_unref(wpad->resolv); g_strfreev(wpad->addrlist); @@ -152,7 +154,6 @@ int __connman_wpad_start(struct connman_service *service) return -ENOMEM; } - wpad->service = service; wpad->resolv = g_resolv_new(index); if (!wpad->resolv) { g_strfreev(nameservers); @@ -174,10 +175,11 @@ int __connman_wpad_start(struct connman_service *service) DBG("hostname %s", wpad->hostname); + wpad->service = connman_service_ref(service); + g_resolv_lookup_hostname(wpad->resolv, wpad->hostname, wpad_result, wpad); - connman_service_ref(service); g_hash_table_replace(wpad_list, GINT_TO_POINTER(index), wpad); return 0; @@ -196,8 +198,7 @@ void __connman_wpad_stop(struct connman_service *service) if (index < 0) return; - if (g_hash_table_remove(wpad_list, GINT_TO_POINTER(index))) - connman_service_unref(service); + g_hash_table_remove(wpad_list, GINT_TO_POINTER(index)); } int __connman_wpad_init(void) diff --git a/tools/iptables-unit.c b/tools/iptables-unit.c index 7e427e21..426631a0 100755 --- a/tools/iptables-unit.c +++ b/tools/iptables-unit.c @@ -24,6 +24,7 @@ #endif #include <glib.h> +#include <errno.h> #include "../src/connman.h" @@ -32,6 +33,7 @@ static bool assert_rule(const char *table_name, const char *rule) char *cmd, *output, **lines; GError **error = NULL; int i; + bool ret = true; cmd = g_strdup_printf(IPTABLES_SAVE " -t %s", table_name); g_spawn_command_line_sync(cmd, &output, NULL, NULL, error); @@ -39,18 +41,20 @@ static bool assert_rule(const char *table_name, const char *rule) lines = g_strsplit(output, "\n", 0); g_free(output); + if (!lines) + return false; for (i = 0; lines[i]; i++) { DBG("lines[%02d]: %s\n", i, lines[i]); if (g_strcmp0(lines[i], rule) == 0) break; } - g_strfreev(lines); if (!lines[i]) - return false; + ret = false; - return true; + g_strfreev(lines); + return ret; } static void assert_rule_exists(const char *table_name, const char *rule) @@ -402,85 +406,6 @@ static void test_nat_basic1(void) g_free(service); } -static void test_firewall_basic0(void) -{ - struct firewall_context *ctx; - int err; - - ctx = __connman_firewall_create(); - g_assert(ctx); - - err = __connman_firewall_add_rule(ctx, "filter", "INPUT", - "-m mark --mark 999 -j LOG"); - g_assert(err == 0); - - err = __connman_firewall_enable(ctx); - g_assert(err == 0); - - assert_rule_exists("filter", ":connman-INPUT - [0:0]"); - assert_rule_exists("filter", "-A INPUT -j connman-INPUT"); - assert_rule_exists("filter", "-A connman-INPUT -m mark --mark 0x3e7 -j LOG"); - - err = __connman_firewall_disable(ctx); - g_assert(err == 0); - - assert_rule_not_exists("filter", ":connman-INPUT - [0:0]"); - assert_rule_not_exists("filter", "-A INPUT -j connman-INPUT"); - assert_rule_not_exists("filter", "-A connman-INPUT -m mark --mark 0x3e7 -j LOG"); - - __connman_firewall_destroy(ctx); -} - -static void test_firewall_basic1(void) -{ - struct firewall_context *ctx; - int err; - - ctx = __connman_firewall_create(); - g_assert(ctx); - - err = __connman_firewall_add_rule(ctx, "filter", "INPUT", - "-m mark --mark 999 -j LOG"); - g_assert(err == 0); - - err = __connman_firewall_add_rule(ctx, "filter", "OUTPUT", - "-m mark --mark 999 -j LOG"); - g_assert(err == 0); - - err = __connman_firewall_enable(ctx); - g_assert(err == 0); - - err = __connman_firewall_disable(ctx); - g_assert(err == 0); - - __connman_firewall_destroy(ctx); -} - -static void test_firewall_basic2(void) -{ - struct firewall_context *ctx; - int err; - - ctx = __connman_firewall_create(); - g_assert(ctx); - - err = __connman_firewall_add_rule(ctx, "mangle", "INPUT", - "-j CONNMARK --restore-mark"); - g_assert(err == 0); - - err = __connman_firewall_add_rule(ctx, "mangle", "POSTROUTING", - "-j CONNMARK --save-mark"); - g_assert(err == 0); - - err = __connman_firewall_enable(ctx); - g_assert(err == 0); - - err = __connman_firewall_disable(ctx); - g_assert(err == 0); - - __connman_firewall_destroy(ctx); -} - static gchar *option_debug = NULL; static bool parse_debug(const char *key, const char *value, @@ -527,7 +452,6 @@ int main(int argc, char *argv[]) "Unit Tests Connection Manager", VERSION); __connman_iptables_init(); - __connman_firewall_init(); __connman_nat_init(); g_test_add_func("/iptables/chain0", test_iptables_chain0); @@ -540,14 +464,10 @@ int main(int argc, char *argv[]) g_test_add_func("/iptables/target0", test_iptables_target0); g_test_add_func("/nat/basic0", test_nat_basic0); g_test_add_func("/nat/basic1", test_nat_basic1); - g_test_add_func("/firewall/basic0", test_firewall_basic0); - g_test_add_func("/firewall/basic1", test_firewall_basic1); - g_test_add_func("/firewall/basic2", test_firewall_basic2); err = g_test_run(); __connman_nat_cleanup(); - __connman_firewall_cleanup(); __connman_iptables_cleanup(); g_free(option_debug); diff --git a/tools/session-test.h b/tools/session-test.h index 5e6d196a..85129337 100755 --- a/tools/session-test.h +++ b/tools/session-test.h @@ -68,12 +68,6 @@ void util_session_cleanup(struct test_session *session); typedef void (* notify_func_t) (struct test_session *session); -enum connman_session_state { - CONNMAN_SESSION_STATE_DISCONNECTED = 0, - CONNMAN_SESSION_STATE_CONNECTED = 1, - CONNMAN_SESSION_STATE_ONLINE = 2, -}; - struct test_session_info { enum connman_session_state state; char *name; diff --git a/tools/stats-tool.c b/tools/stats-tool.c index 7d117fdc..efa39de2 100755 --- a/tools/stats-tool.c +++ b/tools/stats-tool.c @@ -794,7 +794,7 @@ static void swap_and_close_files(struct stats_file *history_file, munmap(history_file->addr, history_file->len); munmap(temp_file->addr, temp_file->len); - TFR(close(temp_file->fd)); + close(temp_file->fd); unlink(history_file->name); @@ -802,7 +802,7 @@ static void swap_and_close_files(struct stats_file *history_file, return; unlink(temp_file->name); - TFR(close(history_file->fd)); + close(history_file->fd); } static void history_file_update(struct stats_file *data_file, @@ -885,6 +885,11 @@ int main(int argc, char *argv[]) else start_ts = option_start_ts; + if (option_interval == 0) { + printf("interval cannot be zero, using the default value\n"); + option_interval = 3; + } + if (option_create > 0) stats_create(data_file, option_create, option_interval, start_ts, rec); diff --git a/unit/test-ippool.c b/unit/test-ippool.c index e8d077a6..17fac9d9 100755 --- a/unit/test-ippool.c +++ b/unit/test-ippool.c @@ -253,7 +253,7 @@ static void test_case_4(void) static void test_case_5(void) { - struct connman_ippool *pool; + struct connman_ippool *pool1, *pool2; const char *gateway; const char *broadcast; const char *subnet_mask; @@ -271,14 +271,14 @@ static void test_case_5(void) g_assert(flag == 0); /* pool should return 192.168.0.1 now */ - pool = __connman_ippool_create(26, 1, 100, collision_cb, &flag); - g_assert(pool); + pool1 = __connman_ippool_create(26, 1, 100, collision_cb, &flag); + g_assert(pool1); - gateway = __connman_ippool_get_gateway(pool); - broadcast = __connman_ippool_get_broadcast(pool); - subnet_mask = __connman_ippool_get_subnet_mask(pool); - start_ip = __connman_ippool_get_start_ip(pool); - end_ip = __connman_ippool_get_end_ip(pool); + gateway = __connman_ippool_get_gateway(pool1); + broadcast = __connman_ippool_get_broadcast(pool1); + subnet_mask = __connman_ippool_get_subnet_mask(pool1); + start_ip = __connman_ippool_get_start_ip(pool1); + end_ip = __connman_ippool_get_end_ip(pool1); g_assert(gateway); g_assert(broadcast); @@ -296,8 +296,6 @@ static void test_case_5(void) "\tgateway %s broadcast %s mask %s", start_ip, end_ip, gateway, broadcast, subnet_mask); - __connman_ippool_unref(pool); - /* * Now create the pool again, we should not get collision * with existing allocated address. @@ -305,14 +303,14 @@ static void test_case_5(void) /* pool should return 192.168.2.1 now */ flag = 0; - pool = __connman_ippool_create(23, 1, 100, collision_cb, &flag); - g_assert(pool); + pool2 = __connman_ippool_create(23, 1, 100, collision_cb, &flag); + g_assert(pool2); - gateway = __connman_ippool_get_gateway(pool); - broadcast = __connman_ippool_get_broadcast(pool); - subnet_mask = __connman_ippool_get_subnet_mask(pool); - start_ip = __connman_ippool_get_start_ip(pool); - end_ip = __connman_ippool_get_end_ip(pool); + gateway = __connman_ippool_get_gateway(pool2); + broadcast = __connman_ippool_get_broadcast(pool2); + subnet_mask = __connman_ippool_get_subnet_mask(pool2); + start_ip = __connman_ippool_get_start_ip(pool2); + end_ip = __connman_ippool_get_end_ip(pool2); g_assert(gateway); g_assert(broadcast); @@ -332,14 +330,15 @@ static void test_case_5(void) g_assert(flag == 0); - __connman_ippool_unref(pool); + __connman_ippool_unref(pool1); + __connman_ippool_unref(pool2); __connman_ippool_cleanup(); } static void test_case_6(void) { - struct connman_ippool *pool; + struct connman_ippool *pool1, *pool2; const char *gateway; const char *broadcast; const char *subnet_mask; @@ -362,14 +361,14 @@ static void test_case_6(void) g_assert(flag == 0); /* pool should return 192.168.2.1 now */ - pool = __connman_ippool_create(26, 1, 100, collision_cb, &flag); - g_assert(pool); + pool1 = __connman_ippool_create(26, 1, 100, collision_cb, &flag); + g_assert(pool1); - gateway = __connman_ippool_get_gateway(pool); - broadcast = __connman_ippool_get_broadcast(pool); - subnet_mask = __connman_ippool_get_subnet_mask(pool); - start_ip = __connman_ippool_get_start_ip(pool); - end_ip = __connman_ippool_get_end_ip(pool); + gateway = __connman_ippool_get_gateway(pool1); + broadcast = __connman_ippool_get_broadcast(pool1); + subnet_mask = __connman_ippool_get_subnet_mask(pool1); + start_ip = __connman_ippool_get_start_ip(pool1); + end_ip = __connman_ippool_get_end_ip(pool1); g_assert(gateway); g_assert(broadcast); @@ -387,8 +386,6 @@ static void test_case_6(void) "\tgateway %s broadcast %s mask %s", start_ip, end_ip, gateway, broadcast, subnet_mask); - __connman_ippool_unref(pool); - /* * Now create the pool again, we should not get collision * with existing allocated address. @@ -396,14 +393,14 @@ static void test_case_6(void) /* pool should return 192.168.3.1 now */ flag = 0; - pool = __connman_ippool_create(23, 1, 100, collision_cb, &flag); - g_assert(pool); + pool2 = __connman_ippool_create(23, 1, 100, collision_cb, &flag); + g_assert(pool2); - gateway = __connman_ippool_get_gateway(pool); - broadcast = __connman_ippool_get_broadcast(pool); - subnet_mask = __connman_ippool_get_subnet_mask(pool); - start_ip = __connman_ippool_get_start_ip(pool); - end_ip = __connman_ippool_get_end_ip(pool); + gateway = __connman_ippool_get_gateway(pool2); + broadcast = __connman_ippool_get_broadcast(pool2); + subnet_mask = __connman_ippool_get_subnet_mask(pool2); + start_ip = __connman_ippool_get_start_ip(pool2); + end_ip = __connman_ippool_get_end_ip(pool2); g_assert(gateway); g_assert(broadcast); @@ -428,7 +425,8 @@ static void test_case_6(void) __connman_ippool_newaddr(25, start_ip, 24); g_assert(flag == 1); - __connman_ippool_unref(pool); + __connman_ippool_unref(pool1); + __connman_ippool_unref(pool2); __connman_ippool_cleanup(); } diff --git a/vpn/connman-vpn.conf b/vpn/connman-vpn.conf new file mode 100644 index 00000000..99a96ce8 --- /dev/null +++ b/vpn/connman-vpn.conf @@ -0,0 +1,8 @@ +[General] + +# Set input request timeout. Default is 300 seconds +# The request for inputs like passphrase will timeout +# after certain amount of time. Use this setting to +# increase the value in case of different user +# interface designs. +# InputRequestTimeout = 300 diff --git a/vpn/connman-vpn.service.in b/vpn/connman-vpn.service.in index 03eaf226..a8f2948f 100755 --- a/vpn/connman-vpn.service.in +++ b/vpn/connman-vpn.service.in @@ -11,8 +11,10 @@ BusName=net.connman.vpn SmackProcessLabel=System ExecStart=@bindir@/connman-vpnd -n StandardOutput=null -Capabilities=cap_setgid,cap_net_admin,cap_net_bind_service,cap_net_broadcast,cap_net_raw,cap_dac_override=i +Capabilities=cap_net_admin,cap_net_bind_service,cap_net_broadcast,cap_net_raw,cap_dac_override=i SecureBits=keep-caps +ProtectHome=read-only +ProtectSystem=full [Install] WantedBy=multi-user.target @@ -256,6 +256,11 @@ unsigned int connman_timeout_browser_launch(void) return connman_vpn_settings.timeout_browserlaunch; } +const char *connman_option_get_string(const char *key) +{ + return NULL; +} + int main(int argc, char *argv[]) { GOptionContext *context; diff --git a/vpn/plugins/l2tp.c b/vpn/plugins/l2tp.c index 22f9dcf8..a0d22c4d 100755 --- a/vpn/plugins/l2tp.c +++ b/vpn/plugins/l2tp.c @@ -108,13 +108,13 @@ struct { { "PPPD.RefuseMSCHAP2", "refuse-mschapv2", OPT_PPPD, NULL, OPT_BOOL }, { "PPPD.NoBSDComp", "nobsdcomp", OPT_PPPD, NULL, OPT_BOOL }, { "PPPD.NoPcomp", "nopcomp", OPT_PPPD, NULL, OPT_BOOL }, - { "PPPD.UseAccomp", "accomp", OPT_PPPD, NULL, OPT_BOOL }, + { "PPPD.UseAccomp", "noaccomp", OPT_PPPD, NULL, OPT_BOOL }, { "PPPD.NoDeflate", "nodeflate", OPT_PPPD, NULL, OPT_BOOL }, { "PPPD.ReqMPPE", "require-mppe", OPT_PPPD, NULL, OPT_BOOL }, { "PPPD.ReqMPPE40", "require-mppe-40", OPT_PPPD, NULL, OPT_BOOL }, { "PPPD.ReqMPPE128", "require-mppe-128", OPT_PPPD, NULL, OPT_BOOL }, { "PPPD.ReqMPPEStateful", "mppe-stateful", OPT_PPPD, NULL, OPT_BOOL }, - { "PPPD.NoVJ", "no-vj-comp", OPT_PPPD, NULL, OPT_BOOL }, + { "PPPD.NoVJ", "novj", OPT_PPPD, NULL, OPT_BOOL }, }; static DBusConnection *connection; @@ -497,8 +497,9 @@ static void request_input_reply(DBusMessage *reply, void *user_data) DBG("provider %p", l2tp_reply->provider); - if (dbus_message_get_type(reply) == DBUS_MESSAGE_TYPE_ERROR) { - error = dbus_message_get_error_name(reply); + if (!reply || dbus_message_get_type(reply) == DBUS_MESSAGE_TYPE_ERROR) { + if (reply) + error = dbus_message_get_error_name(reply); goto done; } diff --git a/vpn/plugins/openconnect.c b/vpn/plugins/openconnect.c index 5feaed9d..87679bfa 100755 --- a/vpn/plugins/openconnect.c +++ b/vpn/plugins/openconnect.c @@ -315,7 +315,7 @@ static void request_input_cookie_reply(DBusMessage *reply, void *user_data) DBG("provider %p", data->provider); - if (dbus_message_get_type(reply) == DBUS_MESSAGE_TYPE_ERROR) + if (!reply || dbus_message_get_type(reply) == DBUS_MESSAGE_TYPE_ERROR) goto err; if (!vpn_agent_check_reply_has_dict(reply)) diff --git a/vpn/plugins/openvpn.c b/vpn/plugins/openvpn.c index e226afd1..d115df6e 100755 --- a/vpn/plugins/openvpn.c +++ b/vpn/plugins/openvpn.c @@ -29,6 +29,7 @@ #include <unistd.h> #include <stdio.h> #include <net/if.h> +#include <linux/if_tun.h> #include <glib.h> @@ -71,6 +72,8 @@ struct { { "OpenVPN.CompLZO", "--comp-lzo", 0 }, { "OpenVPN.RemoteCertTls", "--remote-cert-tls", 1 }, { "OpenVPN.ConfigFile", "--config", 1 }, + { "OpenVPN.DeviceType", NULL, 1 }, + { "OpenVPN.Verb", "--verb", 1 }, }; struct nameserver_entry { @@ -156,7 +159,7 @@ static int ov_notify(DBusMessage *msg, struct vpn_provider *provider) { DBusMessageIter iter, dict; const char *reason, *key, *value; - char *address = NULL, *gateway = NULL, *peer = NULL; + char *address = NULL, *gateway = NULL, *peer = NULL, *netmask = NULL; struct connman_ipaddress *ipaddress; GSList *nameserver_list = NULL; @@ -192,6 +195,9 @@ static int ov_notify(DBusMessage *msg, struct vpn_provider *provider) if (!strcmp(key, "ifconfig_local")) address = g_strdup(value); + if (!strcmp(key, "ifconfig_netmask")) + netmask = g_strdup(value); + if (!strcmp(key, "ifconfig_remote")) peer = g_strdup(value); @@ -218,11 +224,12 @@ static int ov_notify(DBusMessage *msg, struct vpn_provider *provider) g_free(address); g_free(gateway); g_free(peer); + g_free(netmask); return VPN_STATE_FAILURE; } - connman_ipaddress_set_ipv4(ipaddress, address, NULL, gateway); + connman_ipaddress_set_ipv4(ipaddress, address, netmask, gateway); connman_ipaddress_set_peer(ipaddress, peer); vpn_provider_set_ipaddress(provider, ipaddress); @@ -256,6 +263,7 @@ static int ov_notify(DBusMessage *msg, struct vpn_provider *provider) g_free(address); g_free(gateway); g_free(peer); + g_free(netmask); connman_ipaddress_free(ipaddress); return VPN_STATE_CONNECT; @@ -306,13 +314,54 @@ static int task_append_config_data(struct vpn_provider *provider, return 0; } +static gboolean can_read_data(GIOChannel *chan, + GIOCondition cond, gpointer data) +{ + void (*cbf)(const char *format, ...) = data; + gchar *str; + gsize size; + + if (cond & (G_IO_NVAL | G_IO_ERR | G_IO_HUP)) + return FALSE; + + g_io_channel_read_line(chan, &str, &size, NULL, NULL); + cbf(str); + g_free(str); + + return TRUE; +} + +static int setup_log_read(int stdout_fd, int stderr_fd) +{ + GIOChannel *chan; + int watch; + + chan = g_io_channel_unix_new(stdout_fd); + g_io_channel_set_close_on_unref(chan, TRUE); + watch = g_io_add_watch(chan, G_IO_IN | G_IO_NVAL | G_IO_ERR | G_IO_HUP, + can_read_data, connman_debug); + g_io_channel_unref(chan); + + if (watch == 0) + return -EIO; + + chan = g_io_channel_unix_new(stderr_fd); + g_io_channel_set_close_on_unref(chan, TRUE); + watch = g_io_add_watch(chan, G_IO_IN | G_IO_NVAL | G_IO_ERR | G_IO_HUP, + can_read_data, connman_error); + g_io_channel_unref(chan); + + return watch == 0? -EIO : 0; +} + static int ov_connect(struct vpn_provider *provider, struct connman_task *task, const char *if_name, vpn_provider_connect_cb_t cb, const char *dbus_sender, void *user_data) { const char *option; - int err = 0, fd; + int stdout_fd, stderr_fd; + int err = 0; option = vpn_provider_get_string(provider, "Host"); if (!option) { @@ -341,8 +390,6 @@ static int ov_connect(struct vpn_provider *provider, connman_task_add_argument(task, "--client", NULL); } - connman_task_add_argument(task, "--syslog", NULL); - connman_task_add_argument(task, "--script-security", "2"); connman_task_add_argument(task, "--up", @@ -362,7 +409,15 @@ static int ov_connect(struct vpn_provider *provider, connman_task_get_path(task)); connman_task_add_argument(task, "--dev", if_name); - connman_task_add_argument(task, "--dev-type", "tun"); + option = vpn_provider_get_string(provider, "OpenVPN.DeviceType"); + if (option) { + connman_task_add_argument(task, "--dev-type", option); + } else { + /* + * Default to tun for backwards compatibility. + */ + connman_task_add_argument(task, "--dev-type", "tun"); + } connman_task_add_argument(task, "--persist-tun", NULL); @@ -381,15 +436,15 @@ static int ov_connect(struct vpn_provider *provider, */ connman_task_add_argument(task, "--ping-restart", "0"); - fd = fileno(stderr); err = connman_task_run(task, vpn_died, provider, - NULL, &fd, &fd); + NULL, &stdout_fd, &stderr_fd); if (err < 0) { connman_error("openvpn failed to start"); err = -EIO; goto done; } + err = setup_log_read(stdout_fd, stderr_fd); done: if (cb) cb(provider, user_data, err); @@ -397,10 +452,31 @@ done: return err; } +static int ov_device_flags(struct vpn_provider *provider) +{ + const char *option; + + option = vpn_provider_get_string(provider, "OpenVPN.DeviceType"); + if (!option) { + return IFF_TUN; + } + + if (g_str_equal(option, "tap")) { + return IFF_TAP; + } + + if (!g_str_equal(option, "tun")) { + connman_warn("bad OpenVPN.DeviceType value, falling back to tun"); + } + + return IFF_TUN; +} + static struct vpn_driver vpn_driver = { .notify = ov_notify, .connect = ov_connect, .save = ov_save, + .device_flags = ov_device_flags, }; static int openvpn_init(void) diff --git a/vpn/plugins/pptp.c b/vpn/plugins/pptp.c index 9f2a214d..27b1d508 100755 --- a/vpn/plugins/pptp.c +++ b/vpn/plugins/pptp.c @@ -77,7 +77,7 @@ struct { { "PPPD.RequirMPPE40", "require-mppe-40", NULL, OPT_BOOL }, { "PPPD.RequirMPPE128", "require-mppe-128", NULL, OPT_BOOL }, { "PPPD.RequirMPPEStateful", "mppe-stateful", NULL, OPT_BOOL }, - { "PPPD.NoVJ", "no-vj-comp", NULL, OPT_BOOL }, + { "PPPD.NoVJ", "novj", NULL, OPT_BOOL }, }; static DBusConnection *connection; @@ -289,8 +289,9 @@ static void request_input_reply(DBusMessage *reply, void *user_data) DBG("provider %p", pptp_reply->provider); - if (dbus_message_get_type(reply) == DBUS_MESSAGE_TYPE_ERROR) { - error = dbus_message_get_error_name(reply); + if (!reply || dbus_message_get_type(reply) == DBUS_MESSAGE_TYPE_ERROR) { + if (reply) + error = dbus_message_get_error_name(reply); goto done; } diff --git a/vpn/plugins/vpn.c b/vpn/plugins/vpn.c index e65dacac..f6e24c4c 100755 --- a/vpn/plugins/vpn.c +++ b/vpn/plugins/vpn.c @@ -56,6 +56,7 @@ struct vpn_data { unsigned int watch; enum vpn_state state; struct connman_task *task; + int tun_flags; }; struct vpn_driver_data { @@ -89,7 +90,7 @@ static int stop_vpn(struct vpn_provider *provider) return 0; memset(&ifr, 0, sizeof(ifr)); - ifr.ifr_flags = IFF_TUN | IFF_NO_PI; + ifr.ifr_flags = data->tun_flags | IFF_NO_PI; sprintf(ifr.ifr_name, "%s", data->if_name); fd = open("/dev/net/tun", O_RDWR | O_CLOEXEC); @@ -195,6 +196,34 @@ int vpn_set_ifname(struct vpn_provider *provider, const char *ifname) return 0; } +static int vpn_set_state(struct vpn_provider *provider, + enum vpn_provider_state state) +{ + struct vpn_data *data = vpn_provider_get_data(provider); + if (!data) + return -EINVAL; + + switch (state) { + case VPN_PROVIDER_STATE_UNKNOWN: + return -EINVAL; + case VPN_PROVIDER_STATE_IDLE: + data->state = VPN_STATE_IDLE; + break; + case VPN_PROVIDER_STATE_CONNECT: + case VPN_PROVIDER_STATE_READY: + data->state = VPN_STATE_CONNECT; + break; + case VPN_PROVIDER_STATE_DISCONNECT: + data->state = VPN_STATE_DISCONNECT; + break; + case VPN_PROVIDER_STATE_FAILURE: + data->state = VPN_STATE_FAILURE; + break; + } + + return 0; +} + static void vpn_newlink(unsigned flags, unsigned change, void *user_data) { struct vpn_provider *provider = user_data; @@ -357,7 +386,7 @@ static void vpn_event(struct vpn_provider *provider, int state) } #endif -static int vpn_create_tun(struct vpn_provider *provider) +static int vpn_create_tun(struct vpn_provider *provider, int flags) { struct vpn_data *data = vpn_provider_get_data(provider); struct ifreq ifr; @@ -377,7 +406,7 @@ static int vpn_create_tun(struct vpn_provider *provider) } memset(&ifr, 0, sizeof(ifr)); - ifr.ifr_flags = IFF_TUN | IFF_NO_PI; + ifr.ifr_flags = flags | IFF_NO_PI; for (i = 0; i < 256; i++) { sprintf(ifr.ifr_name, "vpn%d", i); @@ -393,6 +422,7 @@ static int vpn_create_tun(struct vpn_provider *provider) goto exist_err; } + data->tun_flags = flags; data->if_name = (char *)g_strdup(ifr.ifr_name); if (!data->if_name) { connman_error("Failed to allocate memory"); @@ -434,7 +464,7 @@ static int vpn_connect(struct vpn_provider *provider, struct vpn_data *data = vpn_provider_get_data(provider); struct vpn_driver_data *vpn_driver_data; const char *name; - int ret = 0; + int ret = 0, tun_flags = IFF_TUN; enum vpn_state state = VPN_STATE_UNKNOWN; if (data) @@ -482,7 +512,10 @@ static int vpn_connect(struct vpn_provider *provider, } if (vpn_driver_data->vpn_driver->flags != VPN_FLAG_NO_TUN) { - ret = vpn_create_tun(provider); + if (vpn_driver_data->vpn_driver->device_flags) { + tun_flags = vpn_driver_data->vpn_driver->device_flags(provider); + } + ret = vpn_create_tun(provider, tun_flags); if (ret < 0) goto exist_err; } @@ -628,6 +661,7 @@ int vpn_register(const char *name, struct vpn_driver *vpn_driver, data->provider_driver.probe = vpn_probe; data->provider_driver.remove = vpn_remove; data->provider_driver.save = vpn_save; + data->provider_driver.set_state = vpn_set_state; if (!driver_hash) driver_hash = g_hash_table_new_full(g_str_hash, diff --git a/vpn/plugins/vpn.h b/vpn/plugins/vpn.h index af7e8f8e..1888d5ff 100755 --- a/vpn/plugins/vpn.h +++ b/vpn/plugins/vpn.h @@ -57,6 +57,7 @@ struct vpn_driver { void (*disconnect) (struct vpn_provider *provider); int (*error_code) (struct vpn_provider *provider, int exit_code); int (*save) (struct vpn_provider *provider, GKeyFile *keyfile); + int (*device_flags) (struct vpn_provider *provider); }; int vpn_register(const char *name, struct vpn_driver *driver, diff --git a/vpn/plugins/vpnc.c b/vpn/plugins/vpnc.c index 09674bd8..af9dbe76 100755 --- a/vpn/plugins/vpnc.c +++ b/vpn/plugins/vpnc.c @@ -29,6 +29,7 @@ #include <unistd.h> #include <stdio.h> #include <net/if.h> +#include <linux/if_tun.h> #include <glib.h> @@ -72,7 +73,7 @@ struct { { "VPNC.LocalPort", "Local Port", "0", OPT_STRING, true, }, { "VPNC.CiscoPort", "Cisco UDP Encapsulation Port", "0", OPT_STRING, true }, - { "VPNC.AppVersion", "Application Version", NULL, OPT_STRING, true }, + { "VPNC.AppVersion", "Application version", NULL, OPT_STRING, true }, { "VPNC.NATTMode", "NAT Traversal Mode", "cisco-udp", OPT_STRING, true }, { "VPNC.DPDTimeout", "DPD idle timeout (our side)", NULL, OPT_STRING, @@ -287,7 +288,15 @@ static int vc_connect(struct vpn_provider *provider, connman_task_add_argument(task, "--no-detach", NULL); connman_task_add_argument(task, "--ifname", if_name); - connman_task_add_argument(task, "--ifmode", "tun"); + option = vpn_provider_get_string(provider, "VPNC.DeviceType"); + if (option) { + connman_task_add_argument(task, "--ifmode", option); + } else { + /* + * Default to tun for backwards compatibility. + */ + connman_task_add_argument(task, "--ifmode", "tun"); + } connman_task_add_argument(task, "--script", SCRIPTDIR "/openconnect-script"); @@ -329,11 +338,32 @@ static int vc_error_code(struct vpn_provider *provider, int exit_code) } } +static int vc_device_flags(struct vpn_provider *provider) +{ + const char *option; + + option = vpn_provider_get_string(provider, "VPNC.DeviceType"); + if (!option) { + return IFF_TUN; + } + + if (g_str_equal(option, "tap")) { + return IFF_TAP; + } + + if (!g_str_equal(option, "tun")) { + connman_warn("bad VPNC.DeviceType value, falling back to tun"); + } + + return IFF_TUN; +} + static struct vpn_driver vpn_driver = { .notify = vc_notify, .connect = vc_connect, .error_code = vc_error_code, .save = vc_save, + .device_flags = vc_device_flags, }; static int vpnc_init(void) diff --git a/vpn/vpn-config.c b/vpn/vpn-config.c index a5be332d..5f0e749a 100755 --- a/vpn/vpn-config.c +++ b/vpn/vpn-config.c @@ -498,12 +498,12 @@ static void config_notify_handler(struct inotify_event *event, if (event->mask & IN_CREATE) return; - if (event->mask & IN_DELETE) { + if (event->mask & (IN_DELETE | IN_MOVED_FROM)) { g_hash_table_remove(config_table, ident); return; } - if (event->mask & IN_MODIFY) { + if (event->mask & (IN_MODIFY | IN_MOVED_TO)) { struct vpn_config *config; char *path = get_dir(); diff --git a/vpn/vpn-provider.c b/vpn/vpn-provider.c index 925f6997..67239e40 100755 --- a/vpn/vpn-provider.c +++ b/vpn/vpn-provider.c @@ -501,6 +501,12 @@ static DBusMessage *do_connect(DBusConnection *conn, DBusMessage *msg, return NULL; } +static DBusMessage *do_connect2(DBusConnection *conn, DBusMessage *msg, + void *data) +{ + return do_connect(conn, msg, data); +} + static DBusMessage *do_disconnect(DBusConnection *conn, DBusMessage *msg, void *data) { @@ -527,6 +533,9 @@ static const GDBusMethodTable connection_methods[] = { GDBUS_ARGS({ "name", "s" }), NULL, clear_property) }, { GDBUS_ASYNC_METHOD("Connect", NULL, NULL, do_connect) }, + { GDBUS_ASYNC_METHOD("Connect2", + GDBUS_ARGS({ "dbus_sender", "s" }), + NULL, do_connect2) }, { GDBUS_METHOD("Disconnect", NULL, NULL, do_disconnect) }, { }, }; @@ -549,6 +558,12 @@ static void resolv_result(GResolvResultStatus status, provider->host_ip = g_strdupv(results); vpn_provider_unref(provider); + + /* Remove the resolver here so that it will not be left + * hanging around and cause double free in unregister_provider() + */ + g_resolv_unref(provider->resolv); + provider->resolv = NULL; } static void provider_resolv_host_addr(struct vpn_provider *provider) @@ -680,14 +695,11 @@ static struct vpn_route *get_route(char *route_str) in_addr_t addr; struct in_addr netmask_in; unsigned char prefix_len = 32; + char *ptr; + long int value = strtol(netmask, &ptr, 10); - if (netmask) { - char *ptr; - long int value = strtol(netmask, &ptr, 10); - if (ptr != netmask && *ptr == '\0' && - value <= 32) - prefix_len = value; - } + if (ptr != netmask && *ptr == '\0' && value <= 32) + prefix_len = value; addr = 0xffffffff << (32 - prefix_len); netmask_in.s_addr = htonl(addr); @@ -796,16 +808,20 @@ static gchar **create_network_list(GSList *networks, gsize *count) { GSList *list; gchar **result = NULL; + gchar **prev_result; unsigned int num_elems = 0; for (list = networks; list; list = g_slist_next(list)) { struct vpn_route *route = list->data; int family; + prev_result = result; result = g_try_realloc(result, (num_elems + 1) * sizeof(gchar *)); - if (!result) + if (!result) { + g_free(prev_result); return NULL; + } switch (route->family) { case AF_INET: @@ -826,9 +842,12 @@ static gchar **create_network_list(GSList *networks, gsize *count) num_elems++; } + prev_result = result; result = g_try_realloc(result, (num_elems + 1) * sizeof(gchar *)); - if (!result) + if (!result) { + g_free(prev_result); return NULL; + } result[num_elems] = NULL; *count = num_elems; @@ -1081,10 +1100,22 @@ int __vpn_provider_connect(struct vpn_provider *provider, DBusMessage *msg) DBG("provider %p", provider); if (provider->driver && provider->driver->connect) { + const char *dbus_sender = dbus_message_get_sender(msg); + dbus_message_ref(msg); + + if (dbus_message_has_signature(msg, + DBUS_TYPE_STRING_AS_STRING)) { + const char *sender = NULL; + + dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, + &sender, DBUS_TYPE_INVALID); + if (sender && sender[0]) + dbus_sender = sender; + } + err = provider->driver->connect(provider, connect_cb, - dbus_message_get_sender(msg), - msg); + dbus_sender, msg); } else return -EOPNOTSUPP; @@ -1560,6 +1591,9 @@ int vpn_provider_indicate_error(struct vpn_provider *provider, break; } + if (provider->driver && provider->driver->set_state) + provider->driver->set_state(provider, provider->state); + return 0; } @@ -1605,6 +1639,18 @@ static void unregister_provider(gpointer data) connection_unregister(provider); + /* If the provider has any DNS resolver queries pending, + * they need to be cleared here because the unref will not + * be able to do that (because the provider_resolv_host_addr() + * has increased the ref count by 1). This is quite rare as + * normally the resolving either returns a value or has a + * timeout which clears the memory. Typically resolv_result() will + * unref the provider but in this case that call has not yet + * happened. + */ + if (provider->resolv) + vpn_provider_unref(provider); + vpn_provider_unref(provider); } diff --git a/vpn/vpn-provider.h b/vpn/vpn-provider.h index 8105d7f1..bdc5f5c1 100755 --- a/vpn/vpn-provider.h +++ b/vpn/vpn-provider.h @@ -132,6 +132,8 @@ struct vpn_provider_driver { void *user_data); int (*disconnect) (struct vpn_provider *provider); int (*save) (struct vpn_provider *provider, GKeyFile *keyfile); + int (*set_state)(struct vpn_provider *provider, + enum vpn_provider_state state); }; int vpn_provider_driver_register(struct vpn_provider_driver *driver); |