# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@

# Copyright (C) 1994-2013 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@

#
#    Copyright (c) 2014-2017 Nest Labs, Inc.
#    All rights reserved.
#
#    Licensed under the Apache License, Version 2.0 (the "License");
#    you may not use this file except in compliance with the License.
#    You may obtain a copy of the License at
#
#        http://www.apache.org/licenses/LICENSE-2.0
#
#    Unless required by applicable law or agreed to in writing, software
#    distributed under the License is distributed on an "AS IS" BASIS,
#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#    See the License for the specific language governing permissions and
#    limitations under the License.
#

#
#    Description:
#      This file is the GNU automake template for Weave public
#      headers, which ensures that a linked shadow set of such headers
#      is always available before building the source such that the in-
#      tree source FOR the SDK can compile against public headers exactly
#      as out-of-tree source AGAINST the SDK would.
#

VPATH = @srcdir@
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
am__make_running_with_option = \
  case $${target_option-} in \
      ?) ;; \
      *) echo "am__make_running_with_option: internal error: invalid" \
              "target option '$${target_option-}' specified" >&2; \
         exit 1;; \
  esac; \
  has_opt=no; \
  sane_makeflags=$$MAKEFLAGS; \
  if $(am__is_gnu_make); then \
    sane_makeflags=$$MFLAGS; \
  else \
    case $$MAKEFLAGS in \
      *\\[\ \	]*) \
        bs=\\; \
        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
    esac; \
  fi; \
  skip_next=no; \
  strip_trailopt () \
  { \
    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
  }; \
  for flg in $$sane_makeflags; do \
    test $$skip_next = yes && { skip_next=no; continue; }; \
    case $$flg in \
      *=*|--*) continue;; \
        -*I) strip_trailopt 'I'; skip_next=yes;; \
      -*I?*) strip_trailopt 'I';; \
        -*O) strip_trailopt 'O'; skip_next=yes;; \
      -*O?*) strip_trailopt 'O';; \
        -*l) strip_trailopt 'l'; skip_next=yes;; \
      -*l?*) strip_trailopt 'l';; \
      -[dEDm]) skip_next=yes;; \
      -[JT]) skip_next=yes;; \
    esac; \
    case $$flg in \
      *$$target_option*) has_opt=yes; break;; \
    esac; \
  done; \
  test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
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@
target_triplet = @target@
@INET_WANT_ENDPOINT_DNS_TRUE@am__append_1 = $(nl_public_InetLayer_source_dirstem)/DNSResolver.h
@INET_WANT_ENDPOINT_RAW_TRUE@am__append_2 = $(nl_public_InetLayer_source_dirstem)/RawEndPoint.h
@INET_WANT_ENDPOINT_TCP_TRUE@am__append_3 = $(nl_public_InetLayer_source_dirstem)/TCPEndPoint.h
@INET_WANT_ENDPOINT_UDP_TRUE@am__append_4 = $(nl_public_InetLayer_source_dirstem)/UDPEndPoint.h
@INET_WANT_ENDPOINT_TUN_TRUE@am__append_5 = $(nl_public_InetLayer_source_dirstem)/TunEndPoint.h
@INET_CONFIG_ENABLE_ASYNC_DNS_SOCKETS_TRUE@@INET_WANT_ENDPOINT_DNS_TRUE@@WEAVE_SYSTEM_CONFIG_USE_SOCKETS_TRUE@am__append_6 = $(nl_public_InetLayer_source_dirstem)/AsyncDNSResolverSockets.h
subdir = src/include
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
	$(srcdir)/BuildConfig.h.in \
	$(top_srcdir)/third_party/nlbuild-autotools/repo/autoconf/mkinstalldirs \
	$(dist_ble_ble_HEADERS) $(dist_ble_device_manager_HEADERS) \
	$(dist_inet_HEADERS) $(dist_micro_ecc_HEADERS) \
	$(dist_mincrypt_HEADERS) $(dist_system_HEADERS) \
	$(dist_warm_HEADERS) $(dist_weave_HEADERS) \
	$(dist_weave_core_HEADERS) $(dist_weave_support_base_HEADERS) \
	$(dist_weave_support_crypto_HEADERS) \
	$(dist_weave_support_logging_HEADERS) \
	$(dist_weave_support_platform_HEADERS) \
	$(dist_weave_support_verhoeff_HEADERS) $(include_HEADERS) \
	$(weave_profiles_base_HEADERS) \
	$(weave_profiles_bulk_data_transfer_HEADERS) \
	$(weave_profiles_bulk_data_transfer_current_HEADERS) \
	$(weave_profiles_bulk_data_transfer_development_HEADERS) \
	$(weave_profiles_common_HEADERS) \
	$(weave_profiles_data_management_HEADERS) \
	$(weave_profiles_data_management_current_HEADERS) \
	$(weave_profiles_data_management_legacy_HEADERS) \
	$(weave_profiles_device_control_HEADERS) \
	$(weave_profiles_device_description_HEADERS) \
	$(weave_profiles_echo_HEADERS) \
	$(weave_profiles_fabric_provisioning_HEADERS) \
	$(weave_profiles_heartbeat_HEADERS) \
	$(weave_profiles_locale_HEADERS) \
	$(weave_profiles_nestlabs_alarm_HEADERS) \
	$(weave_profiles_nestlabs_boiler_HEADERS) \
	$(weave_profiles_nestlabs_device_description_HEADERS) \
	$(weave_profiles_nestlabs_domestic_hot_water_HEADERS) \
	$(weave_profiles_nestlabs_dropcam_legacy_pairing_HEADERS) \
	$(weave_profiles_nestlabs_heat_link_HEADERS) \
	$(weave_profiles_nestlabs_hvac_equipment_control_HEADERS) \
	$(weave_profiles_nestlabs_protect_HEADERS) \
	$(weave_profiles_nestlabs_thermostat_HEADERS) \
	$(weave_profiles_nestlabs_time_variant_data_HEADERS) \
	$(weave_profiles_network_provisioning_HEADERS) \
	$(weave_profiles_security_HEADERS) \
	$(weave_profiles_service_directory_HEADERS) \
	$(weave_profiles_service_provisioning_HEADERS) \
	$(weave_profiles_software_update_HEADERS) \
	$(weave_profiles_status_report_HEADERS) \
	$(weave_profiles_time_HEADERS) \
	$(weave_profiles_token_pairing_HEADERS) \
	$(weave_profiles_weave_tunneling_HEADERS)
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/build/autoconf/m4/nl_check_project_config_includes.m4 \
	$(top_srcdir)/build/autoconf/m4/nl_enable_long_tests.m4 \
	$(top_srcdir)/build/autoconf/m4/nl_with_lwip.m4 \
	$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
	$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) \
	$(top_srcdir)/third_party/nlbuild-autotools/repo/autoconf/mkinstalldirs
CONFIG_HEADER = BuildConfig.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo "  GEN     " $@;
am__v_GEN_1 = 
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 = 
SOURCES =
DIST_SOURCES =
am__can_run_installinfo = \
  case $$AM_UPDATE_INFO_DIR in \
    n|no|NO) false;; \
    *) (install-info --version) >/dev/null 2>&1;; \
  esac
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)$(ble_bledir)" \
	"$(DESTDIR)$(ble_device_managerdir)" "$(DESTDIR)$(inetdir)" \
	"$(DESTDIR)$(micro_eccdir)" "$(DESTDIR)$(mincryptdir)" \
	"$(DESTDIR)$(systemdir)" "$(DESTDIR)$(warmdir)" \
	"$(DESTDIR)$(weavedir)" "$(DESTDIR)$(weave_coredir)" \
	"$(DESTDIR)$(weave_support_basedir)" \
	"$(DESTDIR)$(weave_support_cryptodir)" \
	"$(DESTDIR)$(weave_support_loggingdir)" \
	"$(DESTDIR)$(weave_support_platformdir)" \
	"$(DESTDIR)$(weave_support_verhoeffdir)" \
	"$(DESTDIR)$(includedir)" \
	"$(DESTDIR)$(weave_profiles_basedir)" \
	"$(DESTDIR)$(weave_profiles_bulk_data_transferdir)" \
	"$(DESTDIR)$(weave_profiles_bulk_data_transfer_currentdir)" \
	"$(DESTDIR)$(weave_profiles_bulk_data_transfer_developmentdir)" \
	"$(DESTDIR)$(weave_profiles_commondir)" \
	"$(DESTDIR)$(weave_profiles_data_managementdir)" \
	"$(DESTDIR)$(weave_profiles_data_management_currentdir)" \
	"$(DESTDIR)$(weave_profiles_data_management_legacydir)" \
	"$(DESTDIR)$(weave_profiles_device_controldir)" \
	"$(DESTDIR)$(weave_profiles_device_descriptiondir)" \
	"$(DESTDIR)$(weave_profiles_echodir)" \
	"$(DESTDIR)$(weave_profiles_fabric_provisioningdir)" \
	"$(DESTDIR)$(weave_profiles_heartbeatdir)" \
	"$(DESTDIR)$(weave_profiles_localedir)" \
	"$(DESTDIR)$(weave_profiles_nestlabs_alarmdir)" \
	"$(DESTDIR)$(weave_profiles_nestlabs_boilerdir)" \
	"$(DESTDIR)$(weave_profiles_nestlabs_device_descriptiondir)" \
	"$(DESTDIR)$(weave_profiles_nestlabs_domestic_hot_waterdir)" \
	"$(DESTDIR)$(weave_profiles_nestlabs_dropcam_legacy_pairingdir)" \
	"$(DESTDIR)$(weave_profiles_nestlabs_heat_linkdir)" \
	"$(DESTDIR)$(weave_profiles_nestlabs_hvac_equipment_controldir)" \
	"$(DESTDIR)$(weave_profiles_nestlabs_protectdir)" \
	"$(DESTDIR)$(weave_profiles_nestlabs_thermostatdir)" \
	"$(DESTDIR)$(weave_profiles_nestlabs_time_variant_datadir)" \
	"$(DESTDIR)$(weave_profiles_network_provisioningdir)" \
	"$(DESTDIR)$(weave_profiles_securitydir)" \
	"$(DESTDIR)$(weave_profiles_service_directorydir)" \
	"$(DESTDIR)$(weave_profiles_service_provisioningdir)" \
	"$(DESTDIR)$(weave_profiles_software_updatedir)" \
	"$(DESTDIR)$(weave_profiles_status_reportdir)" \
	"$(DESTDIR)$(weave_profiles_timedir)" \
	"$(DESTDIR)$(weave_profiles_token_pairingdir)" \
	"$(DESTDIR)$(weave_profiles_weave_tunnelingdir)"
HEADERS = $(dist_ble_ble_HEADERS) $(dist_ble_device_manager_HEADERS) \
	$(dist_inet_HEADERS) $(dist_micro_ecc_HEADERS) \
	$(dist_mincrypt_HEADERS) $(dist_system_HEADERS) \
	$(dist_warm_HEADERS) $(dist_weave_HEADERS) \
	$(dist_weave_core_HEADERS) $(dist_weave_support_base_HEADERS) \
	$(dist_weave_support_crypto_HEADERS) \
	$(dist_weave_support_logging_HEADERS) \
	$(dist_weave_support_platform_HEADERS) \
	$(dist_weave_support_verhoeff_HEADERS) $(include_HEADERS) \
	$(weave_profiles_base_HEADERS) \
	$(weave_profiles_bulk_data_transfer_HEADERS) \
	$(weave_profiles_bulk_data_transfer_current_HEADERS) \
	$(weave_profiles_bulk_data_transfer_development_HEADERS) \
	$(weave_profiles_common_HEADERS) \
	$(weave_profiles_data_management_HEADERS) \
	$(weave_profiles_data_management_current_HEADERS) \
	$(weave_profiles_data_management_legacy_HEADERS) \
	$(weave_profiles_device_control_HEADERS) \
	$(weave_profiles_device_description_HEADERS) \
	$(weave_profiles_echo_HEADERS) \
	$(weave_profiles_fabric_provisioning_HEADERS) \
	$(weave_profiles_heartbeat_HEADERS) \
	$(weave_profiles_locale_HEADERS) \
	$(weave_profiles_nestlabs_alarm_HEADERS) \
	$(weave_profiles_nestlabs_boiler_HEADERS) \
	$(weave_profiles_nestlabs_device_description_HEADERS) \
	$(weave_profiles_nestlabs_domestic_hot_water_HEADERS) \
	$(weave_profiles_nestlabs_dropcam_legacy_pairing_HEADERS) \
	$(weave_profiles_nestlabs_heat_link_HEADERS) \
	$(weave_profiles_nestlabs_hvac_equipment_control_HEADERS) \
	$(weave_profiles_nestlabs_protect_HEADERS) \
	$(weave_profiles_nestlabs_thermostat_HEADERS) \
	$(weave_profiles_nestlabs_time_variant_data_HEADERS) \
	$(weave_profiles_network_provisioning_HEADERS) \
	$(weave_profiles_security_HEADERS) \
	$(weave_profiles_service_directory_HEADERS) \
	$(weave_profiles_service_provisioning_HEADERS) \
	$(weave_profiles_software_update_HEADERS) \
	$(weave_profiles_status_report_HEADERS) \
	$(weave_profiles_time_HEADERS) \
	$(weave_profiles_token_pairing_HEADERS) \
	$(weave_profiles_weave_tunneling_HEADERS)
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
	$(LISP)BuildConfig.h.in
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates.  Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
  BEGIN { nonempty = 0; } \
  { items[$$0] = 1; nonempty = 1; } \
  END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique.  This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
  list='$(am__tagged_files)'; \
  unique=`for i in $$list; do \
    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
  done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BLUEZ_BUILD_DIRECTORY = @BLUEZ_BUILD_DIRECTORY@
BLUEZ_CPPFLAGS = @BLUEZ_CPPFLAGS@
BLUEZ_LDFLAGS = @BLUEZ_LDFLAGS@
BLUEZ_LIBS = @BLUEZ_LIBS@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CMP = @CMP@
CONFIG_HAVE_HEAP = @CONFIG_HAVE_HEAP@
CONFIG_HAVE_VCBPRINTF = @CONFIG_HAVE_VCBPRINTF@
CONFIG_HAVE_VSNPRINTF_EX = @CONFIG_HAVE_VSNPRINTF_EX@
CONFIG_NETWORK_LAYER_BLE = @CONFIG_NETWORK_LAYER_BLE@
CONFIG_NETWORK_LAYER_INET = @CONFIG_NETWORK_LAYER_INET@
CONFIG_TARGET_NETWORKS = @CONFIG_TARGET_NETWORKS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CROSS_SDK = @CROSS_SDK@
CROSS_SYSROOT = @CROSS_SYSROOT@
CROSS_TOP = @CROSS_TOP@
CURL_CPPFLAGS = @CURL_CPPFLAGS@
CURL_LDFLAGS = @CURL_LDFLAGS@
CURL_LIBS = @CURL_LIBS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DBUS_CFLAGS = @DBUS_CFLAGS@
DBUS_LIBS = @DBUS_LIBS@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DOT = @DOT@
DOXYGEN = @DOXYGEN@
DOXYGEN_USE_DOT = @DOXYGEN_USE_DOT@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GENHTML = @GENHTML@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
HAPPY_DNS = @HAPPY_DNS@
HAPPY_PATH = @HAPPY_PATH@
HAPPY_SERVICE = @HAPPY_SERVICE@
HAVE_CXX11 = @HAVE_CXX11@
HAVE_IN6_RTMSG = @HAVE_IN6_RTMSG@
HAVE_LINUX_IF_TUN_H = @HAVE_LINUX_IF_TUN_H@
HAVE_LINUX_IPV6_ROUTE_H = @HAVE_LINUX_IPV6_ROUTE_H@
HAVE_LINUX_ROUTE_H = @HAVE_LINUX_ROUTE_H@
INET_ENDPOINTS = @INET_ENDPOINTS@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
JAR = @JAR@
JAVAC = @JAVAC@
JAVA_HOME = @JAVA_HOME@
JNI_CPPFLAGS = @JNI_CPPFLAGS@
LCOV = @LCOV@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIBWEAVE_VERSION_AGE = @LIBWEAVE_VERSION_AGE@
LIBWEAVE_VERSION_CURRENT = @LIBWEAVE_VERSION_CURRENT@
LIBWEAVE_VERSION_INFO = @LIBWEAVE_VERSION_INFO@
LIBWEAVE_VERSION_REVISION = @LIBWEAVE_VERSION_REVISION@
LIPO = @LIPO@
LNDIR = @LNDIR@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LWIP_CPPFLAGS = @LWIP_CPPFLAGS@
LWIP_LDFLAGS = @LWIP_LDFLAGS@
LWIP_LIBS = @LWIP_LIBS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
NLASSERT_CPPFLAGS = @NLASSERT_CPPFLAGS@
NLASSERT_LDFLAGS = @NLASSERT_LDFLAGS@
NLASSERT_LIBS = @NLASSERT_LIBS@
NLFAULTINJECTION_CPPFLAGS = @NLFAULTINJECTION_CPPFLAGS@
NLFAULTINJECTION_LDFLAGS = @NLFAULTINJECTION_LDFLAGS@
NLFAULTINJECTION_LIBS = @NLFAULTINJECTION_LIBS@
NLIO_CPPFLAGS = @NLIO_CPPFLAGS@
NLIO_LDFLAGS = @NLIO_LDFLAGS@
NLIO_LIBS = @NLIO_LIBS@
NLUNITTEST_CPPFLAGS = @NLUNITTEST_CPPFLAGS@
NLUNITTEST_LDFLAGS = @NLUNITTEST_LDFLAGS@
NLUNITTEST_LIBS = @NLUNITTEST_LIBS@
NL_PROJECT_CONFIG_INCLUDES = @NL_PROJECT_CONFIG_INCLUDES@
NM = @NM@
NMEDIT = @NMEDIT@
OBJC = @OBJC@
OBJCDEPMODE = @OBJCDEPMODE@
OBJCFLAGS = @OBJCFLAGS@
OBJCOPY = @OBJCOPY@
OBJCXX = @OBJCXX@
OBJCXXCPP = @OBJCXXCPP@
OBJCXXDEPMODE = @OBJCXXDEPMODE@
OBJCXXFLAGS = @OBJCXXFLAGS@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OPENSSL_CPPFLAGS = @OPENSSL_CPPFLAGS@
OPENSSL_LDFLAGS = @OPENSSL_LDFLAGS@
OPENSSL_LIBS = @OPENSSL_LIBS@
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@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PRETTY_CHECK = @PRETTY_CHECK@
PRETTY_CHECK_ARGS = @PRETTY_CHECK_ARGS@
PTHREAD_CC = @PTHREAD_CC@
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
PTHREAD_LIBS = @PTHREAD_LIBS@
PYTHON = @PYTHON@
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
PYTHON_PLATFORM = @PYTHON_PLATFORM@
PYTHON_PREFIX = @PYTHON_PREFIX@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SOCKETS_CPPFLAGS = @SOCKETS_CPPFLAGS@
SOCKETS_LDFLAGS = @SOCKETS_LDFLAGS@
SOCKETS_LIBS = @SOCKETS_LIBS@
STRIP = @STRIP@
VERSION = @VERSION@
VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
VISIBILITY_OBJCFLAGS = @VISIBILITY_OBJCFLAGS@
VISIBILITY_OBJCXXCFLAGS = @VISIBILITY_OBJCXXCFLAGS@
WEAVE_LOGGING_STYLE = @WEAVE_LOGGING_STYLE@
WEAVE_LOGGING_STYLE_ANDROID = @WEAVE_LOGGING_STYLE_ANDROID@
WEAVE_LOGGING_STYLE_EXTERNAL = @WEAVE_LOGGING_STYLE_EXTERNAL@
WEAVE_LOGGING_STYLE_STDIO = @WEAVE_LOGGING_STYLE_STDIO@
WEAVE_LOGGING_STYLE_STDIO_WEAK = @WEAVE_LOGGING_STYLE_STDIO_WEAK@
WEAVE_OPENSSL_TARGET = @WEAVE_OPENSSL_TARGET@
WEAVE_OPENSSL_TARGET_DEFINES = @WEAVE_OPENSSL_TARGET_DEFINES@
WEAVE_SYSTEM_CONFIG_USE_LWIP = @WEAVE_SYSTEM_CONFIG_USE_LWIP@
WEAVE_SYSTEM_CONFIG_USE_SOCKETS = @WEAVE_SYSTEM_CONFIG_USE_SOCKETS@
WEAVE_TARGET_STYLE = @WEAVE_TARGET_STYLE@
WEAVE_TARGET_STYLE_EMBEDDED = @WEAVE_TARGET_STYLE_EMBEDDED@
WEAVE_TARGET_STYLE_UNIX = @WEAVE_TARGET_STYLE_UNIX@
_ACJNI_JAVAC = @_ACJNI_JAVAC@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_nlbuild_autotools_dir = @abs_top_nlbuild_autotools_dir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
ac_ct_OBJC = @ac_ct_OBJC@
ac_ct_OBJCXX = @ac_ct_OBJCXX@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
ax_pthread_config = @ax_pthread_config@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
nlbuild_autotools_stem = @nlbuild_autotools_stem@
oldincludedir = @oldincludedir@
openssl_buildstem = @openssl_buildstem@
pdfdir = @pdfdir@
pkgpyexecdir = @pkgpyexecdir@
pkgpythondir = @pkgpythondir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
subdirs = @subdirs@
sysconfdir = @sysconfdir@
target = @target@
target_alias = @target_alias@
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@

#
# Build Configuration
#

#
# Default Project-Specific Configuration Headers
#

# Arrange to install the selected project-specific configuration
# headers IF they are located in the build/config source directory. If the
# user has specified their own configuration headers, then those
# headers are NOT included in the installation directory.
#
# The 'dist' target appears to have issues with absolute paths, so add
# them with relative paths to include_HEADERS which, in turn, is
# included in DIST_COMMON which, in turn, is included in DISTFILES
# which is what the 'distdir' target depended on by the 'dist' target
# works against.
include_HEADERS = BuildConfig.h $(NULL) $(subst $(abspath \
	$(abs_top_srcdir)),$(top_srcdir),$(filter $(abspath \
	$(top_srcdir)/build/config/%),$(abspath \
	$(NL_PROJECT_CONFIG_INCLUDES))))

#
# First-party Public Headers
#

#
# BleLayer
#
# At present, the BLE layer is partitioned in two: a production
# portion under ble/ and a test protion under device-manager/.
# 

#
# BleLayer : ble
#
# Production Portion
#
nl_public_BleLayer_ble_source_dirstem = ble
nl_public_BleLayer_ble_header_sources = \
$(nl_public_BleLayer_ble_source_dirstem)/BLEEndPoint.h \
$(nl_public_BleLayer_ble_source_dirstem)/Ble.h \
$(nl_public_BleLayer_ble_source_dirstem)/BleApplicationDelegate.h \
$(nl_public_BleLayer_ble_source_dirstem)/BleConfig.h \
$(nl_public_BleLayer_ble_source_dirstem)/BleError.h \
$(nl_public_BleLayer_ble_source_dirstem)/BleLayer.h \
$(nl_public_BleLayer_ble_source_dirstem)/BlePlatformDelegate.h \
$(nl_public_BleLayer_ble_source_dirstem)/BleUUID.h \
$(nl_public_BleLayer_ble_source_dirstem)/WoBle.h \
$(NULL)

dist_ble_ble_HEADERS = $(addprefix ../,$(nl_public_BleLayer_ble_header_sources))
nl_public_BleLayer_ble_destination_dirstem = BleLayer
ble_bledir = $(includedir)/$(nl_public_BleLayer_ble_destination_dirstem)
@CONFIG_NETWORK_LAYER_BLE_TRUE@nl_public_BleLayer_ble_header_paths = $(subst $(nl_public_BleLayer_ble_source_dirstem)/,,$(nl_public_BleLayer_ble_header_sources))
@CONFIG_NETWORK_LAYER_BLE_TRUE@nl_public_BleLayer_ble_header_destinations = $(addprefix $(nl_public_BleLayer_ble_destination_dirstem)/,$(nl_public_BleLayer_ble_header_paths))
@CONFIG_NETWORK_LAYER_BLE_TRUE@nl_public_BleLayer_ble_header_dirs = $(sort $(dir $(nl_public_BleLayer_ble_header_destinations)))

#
# BleLayer : device-manager
#
# Test Portion
#
# The WoBLE interface is currently exercised via the Device Manager
# interface. Consequently, when WoBLE testing is enabled, include the
# test header as a publicly-exported header.
#
nl_public_BleLayer_device_manager_source_dirstem = device-manager
nl_public_BleLayer_device_manager_header_sources = \
$(nl_public_BleLayer_device_manager_source_dirstem)/WoBleTest.h

dist_ble_device_manager_HEADERS = $(addprefix ../,$(nl_public_BleLayer_device_manager_header_sources))
nl_public_BleLayer_device_manager_destination_dirstem = BleLayer
ble_device_managerdir = $(includedir)/$(nl_public_BleLayer_device_manager_destination_dirstem)
@CONFIG_NETWORK_LAYER_BLE_TRUE@@WEAVE_ENABLE_WOBLE_TEST_TRUE@nl_public_BleLayer_device_manager_header_paths = $(subst $(nl_public_BleLayer_device_manager_source_dirstem)/,,$(nl_public_BleLayer_device_manager_header_sources))
@CONFIG_NETWORK_LAYER_BLE_TRUE@@WEAVE_ENABLE_WOBLE_TEST_TRUE@nl_public_BleLayer_device_manager_header_destinations = $(addprefix $(nl_public_BleLayer_device_manager_destination_dirstem)/,$(nl_public_BleLayer_device_manager_header_paths))
@CONFIG_NETWORK_LAYER_BLE_TRUE@@WEAVE_ENABLE_WOBLE_TEST_TRUE@nl_public_BleLayer_device_manager_header_dirs = $(sort $(dir $(nl_public_BleLayer_device_manager_header_destinations)))

#
# InetLayer
#
nl_public_InetLayer_source_dirstem = inet
nl_always_InetLayer_header_sources = \
$(nl_public_InetLayer_source_dirstem)/EndPointBasis.h \
$(nl_public_InetLayer_source_dirstem)/IANAConstants.h \
$(nl_public_InetLayer_source_dirstem)/Inet.h \
$(nl_public_InetLayer_source_dirstem)/InetBuffer.h \
$(nl_public_InetLayer_source_dirstem)/InetConfig.h \
$(nl_public_InetLayer_source_dirstem)/InetError.h \
$(nl_public_InetLayer_source_dirstem)/InetInterface.h \
$(nl_public_InetLayer_source_dirstem)/InetLayer.h \
$(nl_public_InetLayer_source_dirstem)/InetLayerBasis.h \
$(nl_public_InetLayer_source_dirstem)/InetLayerEvents.h \
$(nl_public_InetLayer_source_dirstem)/InetTimer.h \
$(nl_public_InetLayer_source_dirstem)/IPAddress.h \
$(nl_public_InetLayer_source_dirstem)/IPPrefix.h \
$(nl_public_InetLayer_source_dirstem)/InetFaultInjection.h \
$(NULL)

nl_public_InetLayer_header_sources =  \
	$(nl_always_InetLayer_header_sources) $(am__append_1) \
	$(am__append_2) $(am__append_3) $(am__append_4) \
	$(am__append_5) $(am__append_6)
nl_dist_InetLayer_header_sources = \
$(nl_always_InetLayer_header_sources) \
$(nl_public_InetLayer_source_dirstem)/DNSResolver.h \
$(nl_public_InetLayer_source_dirstem)/RawEndPoint.h \
$(nl_public_InetLayer_source_dirstem)/TCPEndPoint.h \
$(nl_public_InetLayer_source_dirstem)/UDPEndPoint.h \
$(nl_public_InetLayer_source_dirstem)/TunEndPoint.h \
$(nl_public_InetLayer_source_dirstem)/AsyncDNSResolverSockets.h \
$(NULL)

dist_inet_HEADERS = $(addprefix ../,$(nl_dist_InetLayer_header_sources))
nl_public_InetLayer_destination_dirstem = InetLayer
nl_public_InetLayer_header_paths = $(subst $(nl_public_InetLayer_source_dirstem)/,,$(nl_public_InetLayer_header_sources))
nl_public_InetLayer_header_destinations = $(addprefix $(nl_public_InetLayer_destination_dirstem)/,$(nl_public_InetLayer_header_paths))
nl_public_InetLayer_header_dirs = $(call Deslashify,$(sort $(dir $(nl_public_InetLayer_header_destinations))))
inetdir = $(includedir)/$(nl_public_InetLayer_destination_dirstem)

#
# SystemLayer
#
nl_public_SystemLayer_source_dirstem = system
nl_public_SystemLayer_destination_dirstem = SystemLayer
nl_public_SystemLayer_header_sources = \
    $(nl_public_SystemLayer_source_dirstem)/SystemAlignSize.h       \
    $(nl_public_SystemLayer_source_dirstem)/SystemConfig.h          \
    $(nl_public_SystemLayer_source_dirstem)/SystemError.h           \
    $(nl_public_SystemLayer_source_dirstem)/SystemEvent.h           \
    $(nl_public_SystemLayer_source_dirstem)/SystemFaultInjection.h  \
    $(nl_public_SystemLayer_source_dirstem)/SystemStats.h           \
    $(nl_public_SystemLayer_source_dirstem)/SystemLayer.h           \
    $(nl_public_SystemLayer_source_dirstem)/SystemMutex.h           \
    $(nl_public_SystemLayer_source_dirstem)/SystemObject.h          \
    $(nl_public_SystemLayer_source_dirstem)/SystemTimer.h           \
    $(nl_public_SystemLayer_source_dirstem)/SystemPacketBuffer.h    \
    $(NULL)

nl_public_SystemLayer_header_paths = $(subst $(nl_public_SystemLayer_source_dirstem)/,,$(nl_public_SystemLayer_header_sources))
nl_public_SystemLayer_header_destinations = $(addprefix $(nl_public_SystemLayer_destination_dirstem)/,$(nl_public_SystemLayer_header_paths))
nl_public_SystemLayer_header_dirs = $(call Deslashify,$(sort $(dir $(nl_public_SystemLayer_header_destinations))))
systemdir = $(includedir)/$(nl_public_SystemLayer_destination_dirstem)
dist_system_HEADERS = $(addprefix ../,$(nl_public_SystemLayer_header_sources))

#
# Warm
#
nl_public_Warm_source_dirstem = warm
nl_public_Warm_destination_dirstem = Warm
nl_public_Warm_header_sources = \
$(nl_public_Warm_source_dirstem)/Warm.h \
$(nl_public_Warm_source_dirstem)/WarmConfig.h \
$(NULL)

nl_public_Warm_header_paths = $(subst $(nl_public_Warm_source_dirstem)/,,$(nl_public_Warm_header_sources))
nl_public_Warm_header_destinations = $(addprefix $(nl_public_Warm_destination_dirstem)/,$(nl_public_Warm_header_paths))
nl_public_Warm_header_dirs = $(call Deslashify,$(sort $(dir $(nl_public_Warm_header_destinations))))
warmdir = $(includedir)/$(nl_public_Warm_destination_dirstem)
dist_warm_HEADERS = $(addprefix ../,$(nl_public_Warm_header_sources))

#
# Weave
#

# Weave - Top-level
#
# Right now, this exists exclusive to serve the auto-generated
# Weave/WeaveVersion.h header.
nl_public_Weave_source_dirstem = Weave
nl_public_Weave_destination_dirstem = Weave
nl_public_Weave_header_sources = \
$(nl_public_Weave_source_dirstem)/WeaveVersion.h \
$(NULL)

nl_public_Weave_header_paths = $(subst $(nl_public_Weave_source_dirstem)/,,$(nl_public_Weave_header_sources))
nl_public_Weave_header_destinations = $(addprefix $(nl_public_Weave_destination_dirstem)/,$(nl_public_Weave_header_paths))
nl_public_Weave_header_dirs = $(call Deslashify,$(sort $(dir $(nl_public_Weave_header_destinations))))
weavedir = $(includedir)/$(nl_public_Weave_destination_dirstem)
dist_weave_HEADERS = $(addprefix ./,$(nl_public_Weave_header_sources))

# Weave - Support
nl_public_WeaveSupport_source_dirstem = lib/support
nl_public_WeaveSupport_destination_dirstem = Weave/Support
nl_public_WeaveSupport_base_header_sources = \
$(nl_public_WeaveSupport_source_dirstem)/ASN1.h \
$(nl_public_WeaveSupport_source_dirstem)/ASN1Config.h \
$(nl_public_WeaveSupport_source_dirstem)/ASN1Error.h \
$(nl_public_WeaveSupport_source_dirstem)/ASN1Macros.h \
$(nl_public_WeaveSupport_source_dirstem)/ASN1OID.h \
$(nl_public_WeaveSupport_source_dirstem)/Base64.h \
$(nl_public_WeaveSupport_source_dirstem)/CodeUtils.h \
$(nl_public_WeaveSupport_source_dirstem)/ErrorStr.h \
$(nl_public_WeaveSupport_source_dirstem)/FibonacciUtils.h \
$(nl_public_WeaveSupport_source_dirstem)/FlagUtils.hpp \
$(nl_public_WeaveSupport_source_dirstem)/ManagedNamespace.hpp \
$(nl_public_WeaveSupport_source_dirstem)/MathUtils.h \
$(nl_public_WeaveSupport_source_dirstem)/NLDLLUtil.h \
$(nl_public_WeaveSupport_source_dirstem)/NestCerts.h \
$(nl_public_WeaveSupport_source_dirstem)/PersistedCounter.h \
$(nl_public_WeaveSupport_source_dirstem)/ProfileStringSupport.hpp \
$(nl_public_WeaveSupport_source_dirstem)/RandUtils.h \
$(nl_public_WeaveSupport_source_dirstem)/SerialNumberUtils.h \
$(nl_public_WeaveSupport_source_dirstem)/SerializationUtils.h \
$(nl_public_WeaveSupport_source_dirstem)/TimeUtils.h \
$(nl_public_WeaveSupport_source_dirstem)/TraitEventUtils.h \
$(nl_public_WeaveSupport_source_dirstem)/WeaveCounter.h \
$(nl_public_WeaveSupport_source_dirstem)/WeaveFaultInjection.h \
$(nl_public_WeaveSupport_source_dirstem)/WeaveNames.h \
$(nl_public_WeaveSupport_source_dirstem)/nlargparser.hpp \
$(NULL)

nl_public_WeaveSupport_crypto_header_sources = \
$(nl_public_WeaveSupport_source_dirstem)/crypto/AESBlockCipher.h \
$(nl_public_WeaveSupport_source_dirstem)/crypto/CTRMode.h \
$(nl_public_WeaveSupport_source_dirstem)/crypto/DRBG.h \
$(nl_public_WeaveSupport_source_dirstem)/crypto/EllipticCurve.h \
$(nl_public_WeaveSupport_source_dirstem)/crypto/HKDF.h \
$(nl_public_WeaveSupport_source_dirstem)/crypto/HMAC.h \
$(nl_public_WeaveSupport_source_dirstem)/crypto/HashAlgos.h \
$(nl_public_WeaveSupport_source_dirstem)/crypto/WeaveRNG.h \
$(nl_public_WeaveSupport_source_dirstem)/crypto/WeaveCrypto.h \
$(NULL)

nl_public_WeaveSupport_logging_header_sources = \
$(nl_public_WeaveSupport_source_dirstem)/logging/WeaveLogging.h \
$(nl_public_WeaveSupport_source_dirstem)/logging/DecodedIPPacket.h \
$(NULL)

nl_public_WeaveSupport_verhoeff_header_sources = \
$(nl_public_WeaveSupport_source_dirstem)/verhoeff/Verhoeff.h \
$(NULL)

nl_public_WeaveSupport_pairing_code_sources = \
$(nl_public_WeaveSupport_source_dirstem)/pairing-code/PairingCodeUtils.h \
$(NULL)

nl_public_WeaveSupport_platform_header_sources = \
$(nl_public_WeaveSupport_source_dirstem)/platform/PersistedStorage.h \
$(NULL)

nl_public_WeaveSupport_header_sources = \
$(nl_public_WeaveSupport_base_header_sources) \
$(nl_public_WeaveSupport_crypto_header_sources) \
$(nl_public_WeaveSupport_logging_header_sources) \
$(nl_public_WeaveSupport_verhoeff_header_sources) \
$(nl_public_WeaveSupport_pairing_code_sources) \
$(nl_public_WeaveSupport_platform_header_sources) \
$(NULL)

nl_public_WeaveSupport_header_paths = $(subst $(nl_public_WeaveSupport_source_dirstem)/,,$(nl_public_WeaveSupport_header_sources))
nl_public_WeaveSupport_header_destinations = $(addprefix $(nl_public_WeaveSupport_destination_dirstem)/,$(nl_public_WeaveSupport_header_paths))
nl_public_WeaveSupport_header_dirs = $(call Deslashify,$(sort $(dir $(nl_public_WeaveSupport_header_destinations))))
weave_support_basedir = $(includedir)/$(nl_public_WeaveSupport_destination_dirstem)
dist_weave_support_base_HEADERS = $(addprefix ../,$(nl_public_WeaveSupport_base_header_sources))
weave_support_cryptodir = $(includedir)/$(nl_public_WeaveSupport_destination_dirstem)/crypto
dist_weave_support_crypto_HEADERS = $(addprefix ../,$(nl_public_WeaveSupport_crypto_header_sources))
weave_support_loggingdir = $(includedir)/$(nl_public_WeaveSupport_destination_dirstem)/logging
dist_weave_support_logging_HEADERS = $(addprefix ../,$(nl_public_WeaveSupport_logging_header_sources))
weave_support_verhoeffdir = $(includedir)/$(nl_public_WeaveSupport_destination_dirstem)/verhoeff
dist_weave_support_verhoeff_HEADERS = $(addprefix ../,$(nl_public_WeaveSupport_verhoeff_header_sources))
weave_support_platformdir = $(includedir)/$(nl_public_WeaveSupport_destination_dirstem)/platform
dist_weave_support_platform_HEADERS = $(addprefix ../,$(nl_public_WeaveSupport_platform_header_sources))

# Weave - Core
nl_public_WeaveCore_source_dirstem = lib/core
nl_public_WeaveCore_destination_dirstem = Weave/Core
nl_public_WeaveCore_header_sources = \
$(nl_public_WeaveCore_source_dirstem)/HostPortList.h \
$(nl_public_WeaveCore_source_dirstem)/WeaveKeyIds.h \
$(nl_public_WeaveCore_source_dirstem)/WeaveBinding.h \
$(nl_public_WeaveCore_source_dirstem)/WeaveBDXConfig.h \
$(nl_public_WeaveCore_source_dirstem)/WeaveConfig.h \
$(nl_public_WeaveCore_source_dirstem)/WeaveCore.h \
$(nl_public_WeaveCore_source_dirstem)/WeaveDMConfig.h \
$(nl_public_WeaveCore_source_dirstem)/WeaveTimeConfig.h \
$(nl_public_WeaveCore_source_dirstem)/WeaveEncoding.h \
$(nl_public_WeaveCore_source_dirstem)/WeaveError.h \
$(nl_public_WeaveCore_source_dirstem)/WeaveEventLoggingConfig.h \
$(nl_public_WeaveCore_source_dirstem)/WeaveExchangeMgr.h \
$(nl_public_WeaveCore_source_dirstem)/WeaveFabricState.h \
$(nl_public_WeaveCore_source_dirstem)/WeaveGlobals.h \
$(nl_public_WeaveCore_source_dirstem)/WeaveMessageLayer.h \
$(nl_public_WeaveCore_source_dirstem)/WeaveSecurityMgr.h \
$(nl_public_WeaveCore_source_dirstem)/WeaveServerBase.h \
$(nl_public_WeaveCore_source_dirstem)/WeaveStats.h \
$(nl_public_WeaveCore_source_dirstem)/WeaveTLV.h \
$(nl_public_WeaveCore_source_dirstem)/WeaveTLVData.hpp \
$(nl_public_WeaveCore_source_dirstem)/WeaveTLVDebug.hpp \
$(nl_public_WeaveCore_source_dirstem)/WeaveTLVTags.h \
$(nl_public_WeaveCore_source_dirstem)/WeaveTLVTypes.h \
$(nl_public_WeaveCore_source_dirstem)/WeaveTLVUtilities.hpp \
$(nl_public_WeaveCore_source_dirstem)/WeaveCircularTLVBuffer.h \
$(nl_public_WeaveCore_source_dirstem)/WeaveVendorIdentifiers.hpp \
$(nl_public_WeaveCore_source_dirstem)/WeaveTunnelConfig.h \
$(nl_public_WeaveCore_source_dirstem)/WeaveWRMPConfig.h \
$(NULL)

nl_public_WeaveCore_header_paths = $(subst $(nl_public_WeaveCore_source_dirstem)/,,$(nl_public_WeaveCore_header_sources))
nl_public_WeaveCore_header_destinations = $(addprefix $(nl_public_WeaveCore_destination_dirstem)/,$(nl_public_WeaveCore_header_paths))
nl_public_WeaveCore_header_dirs = $(call Deslashify,$(sort $(dir $(nl_public_WeaveCore_header_destinations))))
weave_coredir = $(includedir)/$(nl_public_WeaveCore_destination_dirstem)
dist_weave_core_HEADERS = $(addprefix ../,$(nl_public_WeaveCore_header_sources))

# Weave - Profiles
nl_public_WeaveProfiles_source_dirstem = lib/profiles
nl_public_WeaveProfiles_destination_dirstem = Weave/Profiles
nl_public_WeaveProfiles_base_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/ProfileCommon.h \
$(nl_public_WeaveProfiles_source_dirstem)/WeaveProfiles.h \
$(NULL)

nl_public_WeaveProfiles_bulk_data_transfer_development_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/bulk-data-transfer/Development/BDXConstants.h \
$(nl_public_WeaveProfiles_source_dirstem)/bulk-data-transfer/Development/BDXDelegate.h \
$(nl_public_WeaveProfiles_source_dirstem)/bulk-data-transfer/Development/BDXManagedNamespace.hpp \
$(nl_public_WeaveProfiles_source_dirstem)/bulk-data-transfer/Development/BDXMessages.h \
$(nl_public_WeaveProfiles_source_dirstem)/bulk-data-transfer/Development/BDXNode.h \
$(nl_public_WeaveProfiles_source_dirstem)/bulk-data-transfer/Development/BDXProtocol.h \
$(nl_public_WeaveProfiles_source_dirstem)/bulk-data-transfer/Development/BDXTransferState.h \
$(nl_public_WeaveProfiles_source_dirstem)/bulk-data-transfer/Development/BulkDataTransfer.h \
$(NULL)

nl_public_WeaveProfiles_bulk_data_transfer_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/bulk-data-transfer/BDXManagedNamespace.hpp \
$(nl_public_WeaveProfiles_source_dirstem)/bulk-data-transfer/BulkDataTransfer.h \
$(nl_public_WeaveProfiles_source_dirstem)/bulk-data-transfer/WeaveBdxDelegate.h \
$(NULL)

nl_public_WeaveProfiles_common_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/common/CommonProfile.h \
$(nl_public_WeaveProfiles_source_dirstem)/common/WeaveMessage.h \
$(NULL)

nl_public_WeaveProfiles_data_management_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Binding.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/ClientDataManager.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/ClientNotifier.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/DMClient.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/DMConstants.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/DMPublisher.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/DataManagement.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/ProfileDatabase.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/ProtocolEngine.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/PublisherDataManager.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/TopicIdentifier.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/WdmManagedNamespace.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/MessageDef.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/ViewClient.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/TraitData.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/TraitCatalog.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/SubscriptionEngine.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/SubscriptionClient.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/SubscriptionHandler.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/NotificationEngine.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Command.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/EventLogging.h		\
$(nl_public_WeaveProfiles_source_dirstem)/data-management/EventLoggingTags.h	\
$(nl_public_WeaveProfiles_source_dirstem)/data-management/EventLoggingTypes.h	\
$(nl_public_WeaveProfiles_source_dirstem)/data-management/EventProcessor.h    \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/LogBDXUpload.h		\
$(nl_public_WeaveProfiles_source_dirstem)/data-management/LoggingConfiguration.h	\
$(nl_public_WeaveProfiles_source_dirstem)/data-management/LoggingManagement.h	\
$(NULL)

nl_public_WeaveProfiles_data_management_legacy_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Legacy/Binding.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Legacy/ClientDataManager.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Legacy/ClientNotifier.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Legacy/DMClient.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Legacy/DMConstants.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Legacy/DMPublisher.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Legacy/DataManagement.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Legacy/ProfileDatabase.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Legacy/ProtocolEngine.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Legacy/PublisherDataManager.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Legacy/TopicIdentifier.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Legacy/WdmManagedNamespace.h \
$(NULL)

nl_public_WeaveProfiles_data_management_current_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Current/DataManagement.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Current/MessageDef.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Current/ViewClient.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Current/TraitData.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Current/TraitCatalog.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Current/SubscriptionEngine.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Current/SubscriptionClient.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Current/SubscriptionHandler.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Current/NotificationEngine.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Current/Command.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Current/WdmManagedNamespace.h \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Current/EventLogging.h		\
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Current/EventLoggingTags.h	\
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Current/EventLoggingTypes.h	\
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Current/EventProcessor.h    \
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Current/LogBDXUpload.h		\
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Current/LoggingConfiguration.h	\
$(nl_public_WeaveProfiles_source_dirstem)/data-management/Current/LoggingManagement.h	\
$(NULL)

nl_public_WeaveProfiles_device_control_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/device-control/DeviceControl.h \
$(NULL)

nl_public_WeaveProfiles_device_description_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/device-description/DeviceDescription.h \
$(NULL)

nl_public_WeaveProfiles_echo_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/echo/WeaveEcho.h \
$(NULL)

nl_public_WeaveProfiles_fabric_provisioning_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/fabric-provisioning/FabricProvisioning.h \
$(NULL)

nl_public_WeaveProfiles_heartbeat_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/heartbeat/WeaveHeartbeat.h \
$(NULL)

nl_public_WeaveProfiles_locale_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/locale/LocaleProfile.hpp \
$(nl_public_WeaveProfiles_source_dirstem)/locale/LocaleStatus.hpp \
$(nl_public_WeaveProfiles_source_dirstem)/locale/LocaleTags.hpp \
$(NULL)

nl_public_WeaveProfiles_network_provisioning_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/network-provisioning/NetworkInfo.h         \
$(nl_public_WeaveProfiles_source_dirstem)/network-provisioning/NetworkProvisioning.h \
$(NULL)

nl_public_WeaveProfiles_security_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/security/ApplicationKeysStructSchema.h \
$(nl_public_WeaveProfiles_source_dirstem)/security/ApplicationKeysTrait.h \
$(nl_public_WeaveProfiles_source_dirstem)/security/ApplicationKeysTraitDataSink.h \
$(nl_public_WeaveProfiles_source_dirstem)/security/WeaveAccessToken.h \
$(nl_public_WeaveProfiles_source_dirstem)/security/WeaveAppGroupGlobalIds.h \
$(nl_public_WeaveProfiles_source_dirstem)/security/WeaveApplicationKeys.h \
$(nl_public_WeaveProfiles_source_dirstem)/security/WeaveCASE.h \
$(nl_public_WeaveProfiles_source_dirstem)/security/WeaveCert.h \
$(nl_public_WeaveProfiles_source_dirstem)/security/WeaveDummyGroupKeyStore.h \
$(nl_public_WeaveProfiles_source_dirstem)/security/WeavePASE.h \
$(nl_public_WeaveProfiles_source_dirstem)/security/WeaveTAKE.h \
$(nl_public_WeaveProfiles_source_dirstem)/security/WeaveKeyExport.h \
$(nl_public_WeaveProfiles_source_dirstem)/security/WeaveKeyExportClient.h \
$(nl_public_WeaveProfiles_source_dirstem)/security/WeavePasscodes.h \
$(nl_public_WeaveProfiles_source_dirstem)/security/WeavePrivateKey.h \
$(nl_public_WeaveProfiles_source_dirstem)/security/WeaveProvBundle.h \
$(nl_public_WeaveProfiles_source_dirstem)/security/WeaveProvHash.h \
$(nl_public_WeaveProfiles_source_dirstem)/security/WeaveSecurity.h \
$(nl_public_WeaveProfiles_source_dirstem)/security/WeaveSecurityDebug.h \
$(nl_public_WeaveProfiles_source_dirstem)/security/WeaveSig.h \
$(NULL)

nl_public_WeaveProfiles_service_directory_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/service-directory/ServiceDirectory.h \
$(NULL)

nl_public_WeaveProfiles_service_provisioning_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/service-provisioning/ServiceProvisioning.h \
$(NULL)

nl_public_WeaveProfiles_software_update_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/software-update/SoftwareUpdateProfile.h \
$(nl_public_WeaveProfiles_source_dirstem)/software-update/WeaveImageAnnounceServer.h \
$(NULL)

nl_public_WeaveProfiles_time_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/time/WeaveTime.h \
$(NULL)

nl_public_WeaveProfiles_token_pairing_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/token-pairing/TokenPairing.h \
$(NULL)

nl_public_WeaveProfiles_status_report_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/status-report/StatusReportProfile.h \
$(NULL)

nl_public_WeaveProfiles_weave_tunneling_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/weave-tunneling/WeaveTunnelAgent.h \
$(nl_public_WeaveProfiles_source_dirstem)/weave-tunneling/WeaveTunnelControl.h \
$(nl_public_WeaveProfiles_source_dirstem)/weave-tunneling/WeaveTunnelCommon.h \
$(nl_public_WeaveProfiles_source_dirstem)/weave-tunneling/WeaveTunnelConnectionMgr.h \
$(NULL)

nl_public_WeaveProfiles_nestlabs_alarm_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/vendor/nestlabs/alarm/WeaveAlarm.h \
$(NULL)

nl_public_WeaveProfiles_nestlabs_device_description_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/vendor/nestlabs/device-description/NestProductIdentifiers.hpp \
$(NULL)

nl_public_WeaveProfiles_nestlabs_heat_link_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/vendor/nestlabs/heat-link/HeatLink.h \
$(nl_public_WeaveProfiles_source_dirstem)/vendor/nestlabs/heat-link/HeatLinkConstants.h \
$(nl_public_WeaveProfiles_source_dirstem)/vendor/nestlabs/heat-link/HeatLinkTags.h \
$(NULL)

nl_public_WeaveProfiles_nestlabs_protect_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/vendor/nestlabs/protect/NestProtect.hpp \
$(nl_public_WeaveProfiles_source_dirstem)/vendor/nestlabs/protect/NestProtectConstants.hpp \
$(nl_public_WeaveProfiles_source_dirstem)/vendor/nestlabs/protect/NestProtectTags.hpp \
$(NULL)

nl_public_WeaveProfiles_nestlabs_thermostat_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/vendor/nestlabs/thermostat/NestThermostatWeaveConstants.h \
$(NULL)

nl_public_WeaveProfiles_nestlabs_time_variant_data_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/vendor/nestlabs/time-variant-data/TimeVariantData.hpp \
$(nl_public_WeaveProfiles_source_dirstem)/vendor/nestlabs/time-variant-data/TimeVariantDataConstants.hpp \
$(nl_public_WeaveProfiles_source_dirstem)/vendor/nestlabs/time-variant-data/TimeVariantDataTags.hpp \
$(NULL)

nl_public_WeaveProfiles_nestlabs_boiler_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/vendor/nestlabs/boiler/NestBoilerWeaveConstants.h \
$(NULL)

nl_public_WeaveProfiles_nestlabs_domestic_hot_water_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/vendor/nestlabs/domestic-hot-water/NestDomesticHotWaterWeaveConstants.h \
$(NULL)

nl_public_WeaveProfiles_nestlabs_dropcam_legacy_pairing_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.h \
$(NULL)

nl_public_WeaveProfiles_nestlabs_hvac_equipment_control_header_sources = \
$(nl_public_WeaveProfiles_source_dirstem)/vendor/nestlabs/hvac/equipment-control/NestHvacEquipmentControlWeaveConstants.h \
$(NULL)

nl_public_WeaveProfiles_header_sources = \
$(nl_public_WeaveProfiles_base_header_sources) \
$(nl_public_WeaveProfiles_bulk_data_transfer_development_header_sources) \
$(nl_public_WeaveProfiles_bulk_data_transfer_header_sources) \
$(nl_public_WeaveProfiles_common_header_sources) \
$(nl_public_WeaveProfiles_data_management_header_sources) \
$(nl_public_WeaveProfiles_data_management_legacy_header_sources) \
$(nl_public_WeaveProfiles_data_management_current_header_sources) \
$(nl_public_WeaveProfiles_device_control_header_sources) \
$(nl_public_WeaveProfiles_device_description_header_sources) \
$(nl_public_WeaveProfiles_echo_header_sources) \
$(nl_public_WeaveProfiles_fabric_provisioning_header_sources) \
$(nl_public_WeaveProfiles_heartbeat_header_sources) \
$(nl_public_WeaveProfiles_locale_header_sources) \
$(nl_public_WeaveProfiles_network_provisioning_header_sources) \
$(nl_public_WeaveProfiles_security_header_sources) \
$(nl_public_WeaveProfiles_service_directory_header_sources) \
$(nl_public_WeaveProfiles_service_provisioning_header_sources) \
$(nl_public_WeaveProfiles_software_update_header_sources) \
$(nl_public_WeaveProfiles_status_report_header_sources) \
$(nl_public_WeaveProfiles_time_header_sources) \
$(nl_public_WeaveProfiles_token_pairing_header_sources) \
$(nl_public_WeaveProfiles_weave_tunneling_header_sources) \
$(nl_public_WeaveProfiles_nestlabs_alarm_header_sources) \
$(nl_public_WeaveProfiles_nestlabs_device_description_header_sources) \
$(nl_public_WeaveProfiles_nestlabs_heat_link_header_sources) \
$(nl_public_WeaveProfiles_nestlabs_protect_header_sources) \
$(nl_public_WeaveProfiles_nestlabs_thermostat_header_sources) \
$(nl_public_WeaveProfiles_nestlabs_time_variant_data_header_sources) \
$(nl_public_WeaveProfiles_nestlabs_boiler_header_sources) \
$(nl_public_WeaveProfiles_nestlabs_dropcam_legacy_pairing_sources) \
$(nl_public_WeaveProfiles_nestlabs_domestic_hot_water_header_sources) \
$(nl_public_WeaveProfiles_nestlabs_hvac_equipment_control_header_sources) \
$(NULL)

nl_public_WeaveProfiles_header_paths = $(subst $(nl_public_WeaveProfiles_source_dirstem)/,,$(nl_public_WeaveProfiles_header_sources))
nl_public_WeaveProfiles_header_destinations = $(addprefix $(nl_public_WeaveProfiles_destination_dirstem)/,$(nl_public_WeaveProfiles_header_paths))
nl_public_WeaveProfiles_header_dirs = $(call Deslashify,$(sort $(dir $(nl_public_WeaveProfiles_header_destinations))))
weave_profiles_basedir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)
weave_profiles_base_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_base_header_sources))
weave_profiles_bulk_data_transferdir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/bulk-data-transfer
weave_profiles_bulk_data_transfer_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_bulk_data_transfer_header_sources))
weave_profiles_bulk_data_transfer_currentdir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/bulk-data-transfer/Current
weave_profiles_bulk_data_transfer_current_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_bulk_data_transfer_current_header_sources))
weave_profiles_bulk_data_transfer_developmentdir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/bulk-data-transfer/Development
weave_profiles_bulk_data_transfer_development_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_bulk_data_transfer_development_header_sources))
weave_profiles_commondir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/common
weave_profiles_common_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_common_header_sources))
weave_profiles_data_managementdir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/data-management
weave_profiles_data_management_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_data_management_header_sources))
weave_profiles_data_management_legacydir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/data-management/Legacy
weave_profiles_data_management_legacy_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_data_management_legacy_header_sources))
weave_profiles_data_management_currentdir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/data-management/Current
weave_profiles_data_management_current_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_data_management_current_header_sources))
weave_profiles_device_controldir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/device-control
weave_profiles_device_control_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_device_control_header_sources))
weave_profiles_device_descriptiondir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/device-description
weave_profiles_device_description_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_device_description_header_sources))
weave_profiles_echodir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/echo
weave_profiles_echo_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_echo_header_sources))
weave_profiles_fabric_provisioningdir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/fabric-provisioning
weave_profiles_fabric_provisioning_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_fabric_provisioning_header_sources))
weave_profiles_heartbeatdir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/heartbeat
weave_profiles_heartbeat_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_heartbeat_header_sources))
weave_profiles_localedir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/locale
weave_profiles_locale_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_locale_header_sources))
weave_profiles_network_provisioningdir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/network-provisioning
weave_profiles_network_provisioning_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_network_provisioning_header_sources))
weave_profiles_securitydir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/security
weave_profiles_security_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_security_header_sources))
weave_profiles_service_directorydir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/service-directory
weave_profiles_service_directory_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_service_directory_header_sources))
weave_profiles_service_provisioningdir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/service-provisioning
weave_profiles_service_provisioning_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_service_provisioning_header_sources))
weave_profiles_software_updatedir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/software-update
weave_profiles_software_update_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_software_update_header_sources))
weave_profiles_status_reportdir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/status-report
weave_profiles_status_report_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_status_report_header_sources))
weave_profiles_timedir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/time
weave_profiles_time_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_time_header_sources))
weave_profiles_token_pairingdir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/token-pairing
weave_profiles_token_pairing_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_token_pairing_header_sources))
weave_profiles_weave_tunnelingdir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/weave-tunneling
weave_profiles_weave_tunneling_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_weave_tunneling_header_sources))
weave_profiles_nestlabs_alarmdir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/vendor/nestlabs/alarm
weave_profiles_nestlabs_alarm_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_nestlabs_alarm_header_sources))
weave_profiles_nestlabs_device_descriptiondir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/vendor/nestlabs/device-description
weave_profiles_nestlabs_device_description_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_nestlabs_device_description_header_sources))
weave_profiles_nestlabs_heat_linkdir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/vendor/nestlabs/heat-link
weave_profiles_nestlabs_heat_link_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_nestlabs_heat_link_header_sources))
weave_profiles_nestlabs_protectdir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/vendor/nestlabs/protect
weave_profiles_nestlabs_protect_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_nestlabs_protect_header_sources))
weave_profiles_nestlabs_thermostatdir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/vendor/nestlabs/thermostat
weave_profiles_nestlabs_thermostat_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_nestlabs_thermostat_header_sources))
weave_profiles_nestlabs_time_variant_datadir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/vendor/nestlabs/time-variant-data
weave_profiles_nestlabs_time_variant_data_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_nestlabs_time_variant_data_header_sources))
weave_profiles_nestlabs_boilerdir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/vendor/nestlabs/boiler
weave_profiles_nestlabs_boiler_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_nestlabs_boiler_header_sources))
weave_profiles_nestlabs_dropcam_legacy_pairingdir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/vendor/nestlabs/dropcam-legacy-pairing
weave_profiles_nestlabs_dropcam_legacy_pairing_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_nestlabs_dropcam_legacy_pairing_sources))
weave_profiles_nestlabs_domestic_hot_waterdir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/vendor/nestlabs/domestic-hot-water
weave_profiles_nestlabs_domestic_hot_water_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_nestlabs_domestic_hot_water_header_sources))
weave_profiles_nestlabs_hvac_equipment_controldir = $(includedir)/$(nl_public_WeaveProfiles_destination_dirstem)/vendor/nestlabs/hvac/equipment-control
weave_profiles_nestlabs_hvac_equipment_control_HEADERS = $(addprefix ../,$(nl_public_WeaveProfiles_nestlabs_hvac_equipment_control_header_sources))

#
# Third-party Public Headers
#

#
# micro-ecc
#
tps_public_micro_ecc_source_dirstem = ../third_party/micro-ecc/micro-ecc
tps_public_micro_ecc_destination_dirstem = micro-ecc
tps_public_micro_ecc_header_sources = \
$(tps_public_micro_ecc_source_dirstem)/uECC.h \
$(tps_public_micro_ecc_source_dirstem)/uECC_vli.h \
$(tps_public_micro_ecc_source_dirstem)/types.h \
$(NULL)

tps_public_micro_ecc_header_paths = $(subst $(tps_public_micro_ecc_source_dirstem)/,,$(tps_public_micro_ecc_header_sources))
tps_public_micro_ecc_header_destinations = $(addprefix $(tps_public_micro_ecc_destination_dirstem)/,$(tps_public_micro_ecc_header_paths))
tps_public_micro_ecc_header_dirs = $(call Deslashify,$(sort $(dir $(tps_public_micro_ecc_header_destinations))))
micro_eccdir = $(includedir)/$(tps_public_micro_ecc_destination_dirstem)
dist_micro_ecc_HEADERS = $(addprefix ../,$(tps_public_micro_ecc_header_sources))

#
# mincrypt
#
tps_public_mincrypt_source_dirstem = ../third_party/android/platform-system/core-mincrypt/include/mincrypt
tps_public_mincrypt_destination_dirstem = mincrypt
tps_public_mincrypt_header_sources = \
$(tps_public_mincrypt_source_dirstem)/sha.h \
$(tps_public_mincrypt_source_dirstem)/sha256.h \
$(tps_public_mincrypt_source_dirstem)/hash-internal.h \
$(NULL)

tps_public_mincrypt_header_paths = $(subst $(tps_public_mincrypt_source_dirstem)/,,$(tps_public_mincrypt_header_sources))
tps_public_mincrypt_header_destinations = $(addprefix $(tps_public_mincrypt_destination_dirstem)/,$(tps_public_mincrypt_header_paths))
tps_public_mincrypt_header_dirs = $(call Deslashify,$(sort $(dir $(tps_public_mincrypt_header_destinations))))
mincryptdir = $(includedir)/$(tps_public_mincrypt_destination_dirstem)
dist_mincrypt_HEADERS = $(addprefix ../,$(tps_public_mincrypt_header_sources))

#
# All header destinations to create or shadow by symbolic link.
#
nl_public_headers = \
    $(nl_public_BleLayer_ble_header_destinations)             \
    $(nl_public_BleLayer_device_manager_header_destinations)  \
    $(nl_public_InetLayer_header_destinations)                \
    $(nl_public_SystemLayer_header_destinations)              \
    $(nl_public_Warm_header_destinations)                     \
    $(nl_public_Weave_header_destinations)                    \
    $(nl_public_WeaveSupport_header_destinations)             \
    $(nl_public_WeaveCore_header_destinations)                \
    $(nl_public_WeaveProfiles_header_destinations)            \
    $(NULL)

tps_public_headers = \
    $(tps_public_micro_ecc_header_destinations)               \
    $(tps_public_mincrypt_header_destinations)                \
    $(NULL)

BUILT_SOURCES = \
    $(nl_public_headers)                                      \
    $(tps_public_headers)                                     \
    $(NULL)

CLEANFILES = \
    $(nl_public_headers)                                      \
    $(tps_public_headers)                                     \
    $(NULL)


#
# Do not attept to lint or prettyify third-party public
# headers.
#

#
# Headers to filter out of PRETTY_FILES
#
tps_public_header_sources = \
    $(dist_micro_ecc_HEADERS)                              \
    $(dist_mincrypt_HEADERS)                               \
    $(NULL)

nl_filtered_pretty_files = \
    $(include_HEADERS)                                     \
    $(tps_public_header_sources)                           \
    $(NULL)

PRETTY_FILES = \
    $(filter-out $(nl_filtered_pretty_files),$(HEADERS))   \
    $(NULL)

nl_public_header_dirs = \
    $(nl_public_BleLayer_ble_header_dirs)                  \
    $(nl_public_BleLayer_device_manager_header_dirs)       \
    $(nl_public_InetLayer_header_dirs)                     \
    $(nl_public_SystemLayer_header_dirs)                   \
    $(nl_public_Warm_header_dirs)                          \
    $(nl_public_WeaveCore_header_dirs)                     \
    $(nl_public_WeaveProfiles_header_dirs)                 \
    $(nl_public_WeaveSupport_header_dirs)                  \
    $(nl_public_Weave_header_dirs)                         \
    $(NULL)

tps_public_header_dirs = \
    $(tps_public_micro_ecc_header_dirs)                    \
    $(tps_public_mincrypt_header_dirs)                     \
    $(NULL)

all: $(BUILT_SOURCES) BuildConfig.h
	$(MAKE) $(AM_MAKEFLAGS) all-am

.SUFFIXES:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
	@for dep in $?; do \
	  case '$(am__configure_deps)' in \
	    *$$dep*) \
	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
	        && { if test -f $@; then exit 0; else break; fi; }; \
	      exit 1;; \
	  esac; \
	done; \
	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/include/Makefile'; \
	$(am__cd) $(top_srcdir) && \
	  $(AUTOMAKE) --foreign src/include/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
	@case '$?' in \
	  *config.status*) \
	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
	  *) \
	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
	esac;

$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh

$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):

BuildConfig.h: stamp-h1
	@test -f $@ || rm -f stamp-h1
	@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1

stamp-h1: $(srcdir)/BuildConfig.h.in $(top_builddir)/config.status
	@rm -f stamp-h1
	cd $(top_builddir) && $(SHELL) ./config.status src/include/BuildConfig.h
$(srcdir)/BuildConfig.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 
	($(am__cd) $(top_srcdir) && $(AUTOHEADER))
	rm -f stamp-h1
	touch $@

distclean-hdr:
	-rm -f BuildConfig.h stamp-h1

mostlyclean-libtool:
	-rm -f *.lo

clean-libtool:
	-rm -rf .libs _libs
install-dist_ble_bleHEADERS: $(dist_ble_ble_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(dist_ble_ble_HEADERS)'; test -n "$(ble_bledir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(ble_bledir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(ble_bledir)" || 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)$(ble_bledir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(ble_bledir)" || exit $$?; \
	done

uninstall-dist_ble_bleHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(dist_ble_ble_HEADERS)'; test -n "$(ble_bledir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(ble_bledir)'; $(am__uninstall_files_from_dir)
install-dist_ble_device_managerHEADERS: $(dist_ble_device_manager_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(dist_ble_device_manager_HEADERS)'; test -n "$(ble_device_managerdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(ble_device_managerdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(ble_device_managerdir)" || 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)$(ble_device_managerdir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(ble_device_managerdir)" || exit $$?; \
	done

uninstall-dist_ble_device_managerHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(dist_ble_device_manager_HEADERS)'; test -n "$(ble_device_managerdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(ble_device_managerdir)'; $(am__uninstall_files_from_dir)
install-dist_inetHEADERS: $(dist_inet_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(dist_inet_HEADERS)'; test -n "$(inetdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(inetdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(inetdir)" || 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)$(inetdir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(inetdir)" || exit $$?; \
	done

uninstall-dist_inetHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(dist_inet_HEADERS)'; test -n "$(inetdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(inetdir)'; $(am__uninstall_files_from_dir)
install-dist_micro_eccHEADERS: $(dist_micro_ecc_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(dist_micro_ecc_HEADERS)'; test -n "$(micro_eccdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(micro_eccdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(micro_eccdir)" || 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)$(micro_eccdir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(micro_eccdir)" || exit $$?; \
	done

uninstall-dist_micro_eccHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(dist_micro_ecc_HEADERS)'; test -n "$(micro_eccdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(micro_eccdir)'; $(am__uninstall_files_from_dir)
install-dist_mincryptHEADERS: $(dist_mincrypt_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(dist_mincrypt_HEADERS)'; test -n "$(mincryptdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(mincryptdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(mincryptdir)" || 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)$(mincryptdir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(mincryptdir)" || exit $$?; \
	done

uninstall-dist_mincryptHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(dist_mincrypt_HEADERS)'; test -n "$(mincryptdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(mincryptdir)'; $(am__uninstall_files_from_dir)
install-dist_systemHEADERS: $(dist_system_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(dist_system_HEADERS)'; test -n "$(systemdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(systemdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(systemdir)" || 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)$(systemdir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(systemdir)" || exit $$?; \
	done

uninstall-dist_systemHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(dist_system_HEADERS)'; test -n "$(systemdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(systemdir)'; $(am__uninstall_files_from_dir)
install-dist_warmHEADERS: $(dist_warm_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(dist_warm_HEADERS)'; test -n "$(warmdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(warmdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(warmdir)" || 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)$(warmdir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(warmdir)" || exit $$?; \
	done

uninstall-dist_warmHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(dist_warm_HEADERS)'; test -n "$(warmdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(warmdir)'; $(am__uninstall_files_from_dir)
install-dist_weaveHEADERS: $(dist_weave_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(dist_weave_HEADERS)'; test -n "$(weavedir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weavedir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weavedir)" || 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)$(weavedir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weavedir)" || exit $$?; \
	done

uninstall-dist_weaveHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(dist_weave_HEADERS)'; test -n "$(weavedir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weavedir)'; $(am__uninstall_files_from_dir)
install-dist_weave_coreHEADERS: $(dist_weave_core_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(dist_weave_core_HEADERS)'; test -n "$(weave_coredir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_coredir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_coredir)" || 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)$(weave_coredir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_coredir)" || exit $$?; \
	done

uninstall-dist_weave_coreHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(dist_weave_core_HEADERS)'; test -n "$(weave_coredir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_coredir)'; $(am__uninstall_files_from_dir)
install-dist_weave_support_baseHEADERS: $(dist_weave_support_base_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(dist_weave_support_base_HEADERS)'; test -n "$(weave_support_basedir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_support_basedir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_support_basedir)" || 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)$(weave_support_basedir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_support_basedir)" || exit $$?; \
	done

uninstall-dist_weave_support_baseHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(dist_weave_support_base_HEADERS)'; test -n "$(weave_support_basedir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_support_basedir)'; $(am__uninstall_files_from_dir)
install-dist_weave_support_cryptoHEADERS: $(dist_weave_support_crypto_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(dist_weave_support_crypto_HEADERS)'; test -n "$(weave_support_cryptodir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_support_cryptodir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_support_cryptodir)" || 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)$(weave_support_cryptodir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_support_cryptodir)" || exit $$?; \
	done

uninstall-dist_weave_support_cryptoHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(dist_weave_support_crypto_HEADERS)'; test -n "$(weave_support_cryptodir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_support_cryptodir)'; $(am__uninstall_files_from_dir)
install-dist_weave_support_loggingHEADERS: $(dist_weave_support_logging_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(dist_weave_support_logging_HEADERS)'; test -n "$(weave_support_loggingdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_support_loggingdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_support_loggingdir)" || 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)$(weave_support_loggingdir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_support_loggingdir)" || exit $$?; \
	done

uninstall-dist_weave_support_loggingHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(dist_weave_support_logging_HEADERS)'; test -n "$(weave_support_loggingdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_support_loggingdir)'; $(am__uninstall_files_from_dir)
install-dist_weave_support_platformHEADERS: $(dist_weave_support_platform_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(dist_weave_support_platform_HEADERS)'; test -n "$(weave_support_platformdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_support_platformdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_support_platformdir)" || 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)$(weave_support_platformdir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_support_platformdir)" || exit $$?; \
	done

uninstall-dist_weave_support_platformHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(dist_weave_support_platform_HEADERS)'; test -n "$(weave_support_platformdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_support_platformdir)'; $(am__uninstall_files_from_dir)
install-dist_weave_support_verhoeffHEADERS: $(dist_weave_support_verhoeff_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(dist_weave_support_verhoeff_HEADERS)'; test -n "$(weave_support_verhoeffdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_support_verhoeffdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_support_verhoeffdir)" || 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)$(weave_support_verhoeffdir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_support_verhoeffdir)" || exit $$?; \
	done

uninstall-dist_weave_support_verhoeffHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(dist_weave_support_verhoeff_HEADERS)'; test -n "$(weave_support_verhoeffdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_support_verhoeffdir)'; $(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-weave_profiles_baseHEADERS: $(weave_profiles_base_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_base_HEADERS)'; test -n "$(weave_profiles_basedir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_basedir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_basedir)" || 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)$(weave_profiles_basedir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_basedir)" || exit $$?; \
	done

uninstall-weave_profiles_baseHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_base_HEADERS)'; test -n "$(weave_profiles_basedir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_basedir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_bulk_data_transferHEADERS: $(weave_profiles_bulk_data_transfer_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_bulk_data_transfer_HEADERS)'; test -n "$(weave_profiles_bulk_data_transferdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_bulk_data_transferdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_bulk_data_transferdir)" || 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)$(weave_profiles_bulk_data_transferdir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_bulk_data_transferdir)" || exit $$?; \
	done

uninstall-weave_profiles_bulk_data_transferHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_bulk_data_transfer_HEADERS)'; test -n "$(weave_profiles_bulk_data_transferdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_bulk_data_transferdir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_bulk_data_transfer_currentHEADERS: $(weave_profiles_bulk_data_transfer_current_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_bulk_data_transfer_current_HEADERS)'; test -n "$(weave_profiles_bulk_data_transfer_currentdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_bulk_data_transfer_currentdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_bulk_data_transfer_currentdir)" || 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)$(weave_profiles_bulk_data_transfer_currentdir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_bulk_data_transfer_currentdir)" || exit $$?; \
	done

uninstall-weave_profiles_bulk_data_transfer_currentHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_bulk_data_transfer_current_HEADERS)'; test -n "$(weave_profiles_bulk_data_transfer_currentdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_bulk_data_transfer_currentdir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_bulk_data_transfer_developmentHEADERS: $(weave_profiles_bulk_data_transfer_development_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_bulk_data_transfer_development_HEADERS)'; test -n "$(weave_profiles_bulk_data_transfer_developmentdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_bulk_data_transfer_developmentdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_bulk_data_transfer_developmentdir)" || 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)$(weave_profiles_bulk_data_transfer_developmentdir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_bulk_data_transfer_developmentdir)" || exit $$?; \
	done

uninstall-weave_profiles_bulk_data_transfer_developmentHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_bulk_data_transfer_development_HEADERS)'; test -n "$(weave_profiles_bulk_data_transfer_developmentdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_bulk_data_transfer_developmentdir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_commonHEADERS: $(weave_profiles_common_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_common_HEADERS)'; test -n "$(weave_profiles_commondir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_commondir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_commondir)" || 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)$(weave_profiles_commondir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_commondir)" || exit $$?; \
	done

uninstall-weave_profiles_commonHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_common_HEADERS)'; test -n "$(weave_profiles_commondir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_commondir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_data_managementHEADERS: $(weave_profiles_data_management_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_data_management_HEADERS)'; test -n "$(weave_profiles_data_managementdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_data_managementdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_data_managementdir)" || 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)$(weave_profiles_data_managementdir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_data_managementdir)" || exit $$?; \
	done

uninstall-weave_profiles_data_managementHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_data_management_HEADERS)'; test -n "$(weave_profiles_data_managementdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_data_managementdir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_data_management_currentHEADERS: $(weave_profiles_data_management_current_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_data_management_current_HEADERS)'; test -n "$(weave_profiles_data_management_currentdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_data_management_currentdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_data_management_currentdir)" || 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)$(weave_profiles_data_management_currentdir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_data_management_currentdir)" || exit $$?; \
	done

uninstall-weave_profiles_data_management_currentHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_data_management_current_HEADERS)'; test -n "$(weave_profiles_data_management_currentdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_data_management_currentdir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_data_management_legacyHEADERS: $(weave_profiles_data_management_legacy_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_data_management_legacy_HEADERS)'; test -n "$(weave_profiles_data_management_legacydir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_data_management_legacydir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_data_management_legacydir)" || 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)$(weave_profiles_data_management_legacydir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_data_management_legacydir)" || exit $$?; \
	done

uninstall-weave_profiles_data_management_legacyHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_data_management_legacy_HEADERS)'; test -n "$(weave_profiles_data_management_legacydir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_data_management_legacydir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_device_controlHEADERS: $(weave_profiles_device_control_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_device_control_HEADERS)'; test -n "$(weave_profiles_device_controldir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_device_controldir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_device_controldir)" || 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)$(weave_profiles_device_controldir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_device_controldir)" || exit $$?; \
	done

uninstall-weave_profiles_device_controlHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_device_control_HEADERS)'; test -n "$(weave_profiles_device_controldir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_device_controldir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_device_descriptionHEADERS: $(weave_profiles_device_description_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_device_description_HEADERS)'; test -n "$(weave_profiles_device_descriptiondir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_device_descriptiondir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_device_descriptiondir)" || 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)$(weave_profiles_device_descriptiondir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_device_descriptiondir)" || exit $$?; \
	done

uninstall-weave_profiles_device_descriptionHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_device_description_HEADERS)'; test -n "$(weave_profiles_device_descriptiondir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_device_descriptiondir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_echoHEADERS: $(weave_profiles_echo_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_echo_HEADERS)'; test -n "$(weave_profiles_echodir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_echodir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_echodir)" || 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)$(weave_profiles_echodir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_echodir)" || exit $$?; \
	done

uninstall-weave_profiles_echoHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_echo_HEADERS)'; test -n "$(weave_profiles_echodir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_echodir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_fabric_provisioningHEADERS: $(weave_profiles_fabric_provisioning_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_fabric_provisioning_HEADERS)'; test -n "$(weave_profiles_fabric_provisioningdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_fabric_provisioningdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_fabric_provisioningdir)" || 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)$(weave_profiles_fabric_provisioningdir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_fabric_provisioningdir)" || exit $$?; \
	done

uninstall-weave_profiles_fabric_provisioningHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_fabric_provisioning_HEADERS)'; test -n "$(weave_profiles_fabric_provisioningdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_fabric_provisioningdir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_heartbeatHEADERS: $(weave_profiles_heartbeat_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_heartbeat_HEADERS)'; test -n "$(weave_profiles_heartbeatdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_heartbeatdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_heartbeatdir)" || 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)$(weave_profiles_heartbeatdir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_heartbeatdir)" || exit $$?; \
	done

uninstall-weave_profiles_heartbeatHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_heartbeat_HEADERS)'; test -n "$(weave_profiles_heartbeatdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_heartbeatdir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_localeHEADERS: $(weave_profiles_locale_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_locale_HEADERS)'; test -n "$(weave_profiles_localedir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_localedir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_localedir)" || 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)$(weave_profiles_localedir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_localedir)" || exit $$?; \
	done

uninstall-weave_profiles_localeHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_locale_HEADERS)'; test -n "$(weave_profiles_localedir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_localedir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_nestlabs_alarmHEADERS: $(weave_profiles_nestlabs_alarm_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_nestlabs_alarm_HEADERS)'; test -n "$(weave_profiles_nestlabs_alarmdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_nestlabs_alarmdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_nestlabs_alarmdir)" || 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)$(weave_profiles_nestlabs_alarmdir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_nestlabs_alarmdir)" || exit $$?; \
	done

uninstall-weave_profiles_nestlabs_alarmHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_nestlabs_alarm_HEADERS)'; test -n "$(weave_profiles_nestlabs_alarmdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_nestlabs_alarmdir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_nestlabs_boilerHEADERS: $(weave_profiles_nestlabs_boiler_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_nestlabs_boiler_HEADERS)'; test -n "$(weave_profiles_nestlabs_boilerdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_nestlabs_boilerdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_nestlabs_boilerdir)" || 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)$(weave_profiles_nestlabs_boilerdir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_nestlabs_boilerdir)" || exit $$?; \
	done

uninstall-weave_profiles_nestlabs_boilerHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_nestlabs_boiler_HEADERS)'; test -n "$(weave_profiles_nestlabs_boilerdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_nestlabs_boilerdir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_nestlabs_device_descriptionHEADERS: $(weave_profiles_nestlabs_device_description_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_nestlabs_device_description_HEADERS)'; test -n "$(weave_profiles_nestlabs_device_descriptiondir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_nestlabs_device_descriptiondir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_nestlabs_device_descriptiondir)" || 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)$(weave_profiles_nestlabs_device_descriptiondir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_nestlabs_device_descriptiondir)" || exit $$?; \
	done

uninstall-weave_profiles_nestlabs_device_descriptionHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_nestlabs_device_description_HEADERS)'; test -n "$(weave_profiles_nestlabs_device_descriptiondir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_nestlabs_device_descriptiondir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_nestlabs_domestic_hot_waterHEADERS: $(weave_profiles_nestlabs_domestic_hot_water_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_nestlabs_domestic_hot_water_HEADERS)'; test -n "$(weave_profiles_nestlabs_domestic_hot_waterdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_nestlabs_domestic_hot_waterdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_nestlabs_domestic_hot_waterdir)" || 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)$(weave_profiles_nestlabs_domestic_hot_waterdir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_nestlabs_domestic_hot_waterdir)" || exit $$?; \
	done

uninstall-weave_profiles_nestlabs_domestic_hot_waterHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_nestlabs_domestic_hot_water_HEADERS)'; test -n "$(weave_profiles_nestlabs_domestic_hot_waterdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_nestlabs_domestic_hot_waterdir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_nestlabs_dropcam_legacy_pairingHEADERS: $(weave_profiles_nestlabs_dropcam_legacy_pairing_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_nestlabs_dropcam_legacy_pairing_HEADERS)'; test -n "$(weave_profiles_nestlabs_dropcam_legacy_pairingdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_nestlabs_dropcam_legacy_pairingdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_nestlabs_dropcam_legacy_pairingdir)" || 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)$(weave_profiles_nestlabs_dropcam_legacy_pairingdir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_nestlabs_dropcam_legacy_pairingdir)" || exit $$?; \
	done

uninstall-weave_profiles_nestlabs_dropcam_legacy_pairingHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_nestlabs_dropcam_legacy_pairing_HEADERS)'; test -n "$(weave_profiles_nestlabs_dropcam_legacy_pairingdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_nestlabs_dropcam_legacy_pairingdir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_nestlabs_heat_linkHEADERS: $(weave_profiles_nestlabs_heat_link_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_nestlabs_heat_link_HEADERS)'; test -n "$(weave_profiles_nestlabs_heat_linkdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_nestlabs_heat_linkdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_nestlabs_heat_linkdir)" || 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)$(weave_profiles_nestlabs_heat_linkdir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_nestlabs_heat_linkdir)" || exit $$?; \
	done

uninstall-weave_profiles_nestlabs_heat_linkHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_nestlabs_heat_link_HEADERS)'; test -n "$(weave_profiles_nestlabs_heat_linkdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_nestlabs_heat_linkdir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_nestlabs_hvac_equipment_controlHEADERS: $(weave_profiles_nestlabs_hvac_equipment_control_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_nestlabs_hvac_equipment_control_HEADERS)'; test -n "$(weave_profiles_nestlabs_hvac_equipment_controldir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_nestlabs_hvac_equipment_controldir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_nestlabs_hvac_equipment_controldir)" || 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)$(weave_profiles_nestlabs_hvac_equipment_controldir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_nestlabs_hvac_equipment_controldir)" || exit $$?; \
	done

uninstall-weave_profiles_nestlabs_hvac_equipment_controlHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_nestlabs_hvac_equipment_control_HEADERS)'; test -n "$(weave_profiles_nestlabs_hvac_equipment_controldir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_nestlabs_hvac_equipment_controldir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_nestlabs_protectHEADERS: $(weave_profiles_nestlabs_protect_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_nestlabs_protect_HEADERS)'; test -n "$(weave_profiles_nestlabs_protectdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_nestlabs_protectdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_nestlabs_protectdir)" || 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)$(weave_profiles_nestlabs_protectdir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_nestlabs_protectdir)" || exit $$?; \
	done

uninstall-weave_profiles_nestlabs_protectHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_nestlabs_protect_HEADERS)'; test -n "$(weave_profiles_nestlabs_protectdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_nestlabs_protectdir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_nestlabs_thermostatHEADERS: $(weave_profiles_nestlabs_thermostat_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_nestlabs_thermostat_HEADERS)'; test -n "$(weave_profiles_nestlabs_thermostatdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_nestlabs_thermostatdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_nestlabs_thermostatdir)" || 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)$(weave_profiles_nestlabs_thermostatdir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_nestlabs_thermostatdir)" || exit $$?; \
	done

uninstall-weave_profiles_nestlabs_thermostatHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_nestlabs_thermostat_HEADERS)'; test -n "$(weave_profiles_nestlabs_thermostatdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_nestlabs_thermostatdir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_nestlabs_time_variant_dataHEADERS: $(weave_profiles_nestlabs_time_variant_data_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_nestlabs_time_variant_data_HEADERS)'; test -n "$(weave_profiles_nestlabs_time_variant_datadir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_nestlabs_time_variant_datadir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_nestlabs_time_variant_datadir)" || 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)$(weave_profiles_nestlabs_time_variant_datadir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_nestlabs_time_variant_datadir)" || exit $$?; \
	done

uninstall-weave_profiles_nestlabs_time_variant_dataHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_nestlabs_time_variant_data_HEADERS)'; test -n "$(weave_profiles_nestlabs_time_variant_datadir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_nestlabs_time_variant_datadir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_network_provisioningHEADERS: $(weave_profiles_network_provisioning_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_network_provisioning_HEADERS)'; test -n "$(weave_profiles_network_provisioningdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_network_provisioningdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_network_provisioningdir)" || 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)$(weave_profiles_network_provisioningdir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_network_provisioningdir)" || exit $$?; \
	done

uninstall-weave_profiles_network_provisioningHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_network_provisioning_HEADERS)'; test -n "$(weave_profiles_network_provisioningdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_network_provisioningdir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_securityHEADERS: $(weave_profiles_security_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_security_HEADERS)'; test -n "$(weave_profiles_securitydir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_securitydir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_securitydir)" || 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)$(weave_profiles_securitydir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_securitydir)" || exit $$?; \
	done

uninstall-weave_profiles_securityHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_security_HEADERS)'; test -n "$(weave_profiles_securitydir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_securitydir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_service_directoryHEADERS: $(weave_profiles_service_directory_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_service_directory_HEADERS)'; test -n "$(weave_profiles_service_directorydir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_service_directorydir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_service_directorydir)" || 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)$(weave_profiles_service_directorydir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_service_directorydir)" || exit $$?; \
	done

uninstall-weave_profiles_service_directoryHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_service_directory_HEADERS)'; test -n "$(weave_profiles_service_directorydir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_service_directorydir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_service_provisioningHEADERS: $(weave_profiles_service_provisioning_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_service_provisioning_HEADERS)'; test -n "$(weave_profiles_service_provisioningdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_service_provisioningdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_service_provisioningdir)" || 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)$(weave_profiles_service_provisioningdir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_service_provisioningdir)" || exit $$?; \
	done

uninstall-weave_profiles_service_provisioningHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_service_provisioning_HEADERS)'; test -n "$(weave_profiles_service_provisioningdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_service_provisioningdir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_software_updateHEADERS: $(weave_profiles_software_update_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_software_update_HEADERS)'; test -n "$(weave_profiles_software_updatedir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_software_updatedir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_software_updatedir)" || 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)$(weave_profiles_software_updatedir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_software_updatedir)" || exit $$?; \
	done

uninstall-weave_profiles_software_updateHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_software_update_HEADERS)'; test -n "$(weave_profiles_software_updatedir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_software_updatedir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_status_reportHEADERS: $(weave_profiles_status_report_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_status_report_HEADERS)'; test -n "$(weave_profiles_status_reportdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_status_reportdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_status_reportdir)" || 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)$(weave_profiles_status_reportdir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_status_reportdir)" || exit $$?; \
	done

uninstall-weave_profiles_status_reportHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_status_report_HEADERS)'; test -n "$(weave_profiles_status_reportdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_status_reportdir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_timeHEADERS: $(weave_profiles_time_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_time_HEADERS)'; test -n "$(weave_profiles_timedir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_timedir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_timedir)" || 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)$(weave_profiles_timedir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_timedir)" || exit $$?; \
	done

uninstall-weave_profiles_timeHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_time_HEADERS)'; test -n "$(weave_profiles_timedir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_timedir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_token_pairingHEADERS: $(weave_profiles_token_pairing_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_token_pairing_HEADERS)'; test -n "$(weave_profiles_token_pairingdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_token_pairingdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_token_pairingdir)" || 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)$(weave_profiles_token_pairingdir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_token_pairingdir)" || exit $$?; \
	done

uninstall-weave_profiles_token_pairingHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_token_pairing_HEADERS)'; test -n "$(weave_profiles_token_pairingdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_token_pairingdir)'; $(am__uninstall_files_from_dir)
install-weave_profiles_weave_tunnelingHEADERS: $(weave_profiles_weave_tunneling_HEADERS)
	@$(NORMAL_INSTALL)
	@list='$(weave_profiles_weave_tunneling_HEADERS)'; test -n "$(weave_profiles_weave_tunnelingdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(weave_profiles_weave_tunnelingdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(weave_profiles_weave_tunnelingdir)" || 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)$(weave_profiles_weave_tunnelingdir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(weave_profiles_weave_tunnelingdir)" || exit $$?; \
	done

uninstall-weave_profiles_weave_tunnelingHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(weave_profiles_weave_tunneling_HEADERS)'; test -n "$(weave_profiles_weave_tunnelingdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(weave_profiles_weave_tunnelingdir)'; $(am__uninstall_files_from_dir)

ID: $(am__tagged_files)
	$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-am
TAGS: tags

tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
	set x; \
	here=`pwd`; \
	$(am__define_uniq_tagged_files); \
	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-am

CTAGS: ctags
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
	$(am__define_uniq_tagged_files); \
	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"
cscopelist: cscopelist-am

cscopelist-am: $(am__tagged_files)
	list='$(am__tagged_files)'; \
	case "$(srcdir)" in \
	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
	  *) sdir=$(subdir)/$(srcdir) ;; \
	esac; \
	for i in $$list; do \
	  if test -f "$$i"; then \
	    echo "$(subdir)/$$i"; \
	  else \
	    echo "$$sdir/$$i"; \
	  fi; \
	done >> $(top_builddir)/cscope.files

distclean-tags:
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags

distdir: $(DISTFILES)
	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
	list='$(DISTFILES)'; \
	  dist_files=`for file in $$list; do echo $$file; done | \
	  sed -e "s|^$$srcdirstrip/||;t" \
	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
	case $$dist_files in \
	  */*) $(MKDIR_P) `echo "$$dist_files" | \
			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
			   sort -u` ;; \
	esac; \
	for file in $$dist_files; do \
	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
	  if test -d $$d/$$file; then \
	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
	    if test -d "$(distdir)/$$file"; then \
	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
	    fi; \
	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
	    fi; \
	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
	  else \
	    test -f "$(distdir)/$$file" \
	    || cp -p $$d/$$file "$(distdir)/$$file" \
	    || exit 1; \
	  fi; \
	done
	$(MAKE) $(AM_MAKEFLAGS) \
	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
	  dist-hook
check-am: all-am
check: $(BUILT_SOURCES)
	$(MAKE) $(AM_MAKEFLAGS) check-am
all-am: Makefile $(HEADERS) BuildConfig.h
installdirs:
	for dir in "$(DESTDIR)$(ble_bledir)" "$(DESTDIR)$(ble_device_managerdir)" "$(DESTDIR)$(inetdir)" "$(DESTDIR)$(micro_eccdir)" "$(DESTDIR)$(mincryptdir)" "$(DESTDIR)$(systemdir)" "$(DESTDIR)$(warmdir)" "$(DESTDIR)$(weavedir)" "$(DESTDIR)$(weave_coredir)" "$(DESTDIR)$(weave_support_basedir)" "$(DESTDIR)$(weave_support_cryptodir)" "$(DESTDIR)$(weave_support_loggingdir)" "$(DESTDIR)$(weave_support_platformdir)" "$(DESTDIR)$(weave_support_verhoeffdir)" "$(DESTDIR)$(includedir)" "$(DESTDIR)$(weave_profiles_basedir)" "$(DESTDIR)$(weave_profiles_bulk_data_transferdir)" "$(DESTDIR)$(weave_profiles_bulk_data_transfer_currentdir)" "$(DESTDIR)$(weave_profiles_bulk_data_transfer_developmentdir)" "$(DESTDIR)$(weave_profiles_commondir)" "$(DESTDIR)$(weave_profiles_data_managementdir)" "$(DESTDIR)$(weave_profiles_data_management_currentdir)" "$(DESTDIR)$(weave_profiles_data_management_legacydir)" "$(DESTDIR)$(weave_profiles_device_controldir)" "$(DESTDIR)$(weave_profiles_device_descriptiondir)" "$(DESTDIR)$(weave_profiles_echodir)" "$(DESTDIR)$(weave_profiles_fabric_provisioningdir)" "$(DESTDIR)$(weave_profiles_heartbeatdir)" "$(DESTDIR)$(weave_profiles_localedir)" "$(DESTDIR)$(weave_profiles_nestlabs_alarmdir)" "$(DESTDIR)$(weave_profiles_nestlabs_boilerdir)" "$(DESTDIR)$(weave_profiles_nestlabs_device_descriptiondir)" "$(DESTDIR)$(weave_profiles_nestlabs_domestic_hot_waterdir)" "$(DESTDIR)$(weave_profiles_nestlabs_dropcam_legacy_pairingdir)" "$(DESTDIR)$(weave_profiles_nestlabs_heat_linkdir)" "$(DESTDIR)$(weave_profiles_nestlabs_hvac_equipment_controldir)" "$(DESTDIR)$(weave_profiles_nestlabs_protectdir)" "$(DESTDIR)$(weave_profiles_nestlabs_thermostatdir)" "$(DESTDIR)$(weave_profiles_nestlabs_time_variant_datadir)" "$(DESTDIR)$(weave_profiles_network_provisioningdir)" "$(DESTDIR)$(weave_profiles_securitydir)" "$(DESTDIR)$(weave_profiles_service_directorydir)" "$(DESTDIR)$(weave_profiles_service_provisioningdir)" "$(DESTDIR)$(weave_profiles_software_updatedir)" "$(DESTDIR)$(weave_profiles_status_reportdir)" "$(DESTDIR)$(weave_profiles_timedir)" "$(DESTDIR)$(weave_profiles_token_pairingdir)" "$(DESTDIR)$(weave_profiles_weave_tunnelingdir)"; 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)

maintainer-clean-generic:
	@echo "This command is intended for maintainers to use"
	@echo "it deletes files that may require special tools to rebuild."
	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
clean: clean-am

clean-am: clean-generic clean-libtool clean-local mostlyclean-am

distclean: distclean-am
	-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-hdr distclean-tags

dvi: dvi-am

dvi-am:

html: html-am

html-am:

info: info-am

info-am:

install-data-am: install-dist_ble_bleHEADERS \
	install-dist_ble_device_managerHEADERS \
	install-dist_inetHEADERS install-dist_micro_eccHEADERS \
	install-dist_mincryptHEADERS install-dist_systemHEADERS \
	install-dist_warmHEADERS install-dist_weaveHEADERS \
	install-dist_weave_coreHEADERS \
	install-dist_weave_support_baseHEADERS \
	install-dist_weave_support_cryptoHEADERS \
	install-dist_weave_support_loggingHEADERS \
	install-dist_weave_support_platformHEADERS \
	install-dist_weave_support_verhoeffHEADERS \
	install-includeHEADERS install-weave_profiles_baseHEADERS \
	install-weave_profiles_bulk_data_transferHEADERS \
	install-weave_profiles_bulk_data_transfer_currentHEADERS \
	install-weave_profiles_bulk_data_transfer_developmentHEADERS \
	install-weave_profiles_commonHEADERS \
	install-weave_profiles_data_managementHEADERS \
	install-weave_profiles_data_management_currentHEADERS \
	install-weave_profiles_data_management_legacyHEADERS \
	install-weave_profiles_device_controlHEADERS \
	install-weave_profiles_device_descriptionHEADERS \
	install-weave_profiles_echoHEADERS \
	install-weave_profiles_fabric_provisioningHEADERS \
	install-weave_profiles_heartbeatHEADERS \
	install-weave_profiles_localeHEADERS \
	install-weave_profiles_nestlabs_alarmHEADERS \
	install-weave_profiles_nestlabs_boilerHEADERS \
	install-weave_profiles_nestlabs_device_descriptionHEADERS \
	install-weave_profiles_nestlabs_domestic_hot_waterHEADERS \
	install-weave_profiles_nestlabs_dropcam_legacy_pairingHEADERS \
	install-weave_profiles_nestlabs_heat_linkHEADERS \
	install-weave_profiles_nestlabs_hvac_equipment_controlHEADERS \
	install-weave_profiles_nestlabs_protectHEADERS \
	install-weave_profiles_nestlabs_thermostatHEADERS \
	install-weave_profiles_nestlabs_time_variant_dataHEADERS \
	install-weave_profiles_network_provisioningHEADERS \
	install-weave_profiles_securityHEADERS \
	install-weave_profiles_service_directoryHEADERS \
	install-weave_profiles_service_provisioningHEADERS \
	install-weave_profiles_software_updateHEADERS \
	install-weave_profiles_status_reportHEADERS \
	install-weave_profiles_timeHEADERS \
	install-weave_profiles_token_pairingHEADERS \
	install-weave_profiles_weave_tunnelingHEADERS

install-dvi: install-dvi-am

install-dvi-am:

install-exec-am:

install-html: install-html-am

install-html-am:

install-info: install-info-am

install-info-am:

install-man:

install-pdf: install-pdf-am

install-pdf-am:

install-ps: install-ps-am

install-ps-am:

installcheck-am:

maintainer-clean: maintainer-clean-am
	-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic

mostlyclean: mostlyclean-am

mostlyclean-am: mostlyclean-generic mostlyclean-libtool

pdf: pdf-am

pdf-am:

ps: ps-am

ps-am:

uninstall-am: uninstall-dist_ble_bleHEADERS \
	uninstall-dist_ble_device_managerHEADERS \
	uninstall-dist_inetHEADERS uninstall-dist_micro_eccHEADERS \
	uninstall-dist_mincryptHEADERS uninstall-dist_systemHEADERS \
	uninstall-dist_warmHEADERS uninstall-dist_weaveHEADERS \
	uninstall-dist_weave_coreHEADERS \
	uninstall-dist_weave_support_baseHEADERS \
	uninstall-dist_weave_support_cryptoHEADERS \
	uninstall-dist_weave_support_loggingHEADERS \
	uninstall-dist_weave_support_platformHEADERS \
	uninstall-dist_weave_support_verhoeffHEADERS \
	uninstall-includeHEADERS uninstall-weave_profiles_baseHEADERS \
	uninstall-weave_profiles_bulk_data_transferHEADERS \
	uninstall-weave_profiles_bulk_data_transfer_currentHEADERS \
	uninstall-weave_profiles_bulk_data_transfer_developmentHEADERS \
	uninstall-weave_profiles_commonHEADERS \
	uninstall-weave_profiles_data_managementHEADERS \
	uninstall-weave_profiles_data_management_currentHEADERS \
	uninstall-weave_profiles_data_management_legacyHEADERS \
	uninstall-weave_profiles_device_controlHEADERS \
	uninstall-weave_profiles_device_descriptionHEADERS \
	uninstall-weave_profiles_echoHEADERS \
	uninstall-weave_profiles_fabric_provisioningHEADERS \
	uninstall-weave_profiles_heartbeatHEADERS \
	uninstall-weave_profiles_localeHEADERS \
	uninstall-weave_profiles_nestlabs_alarmHEADERS \
	uninstall-weave_profiles_nestlabs_boilerHEADERS \
	uninstall-weave_profiles_nestlabs_device_descriptionHEADERS \
	uninstall-weave_profiles_nestlabs_domestic_hot_waterHEADERS \
	uninstall-weave_profiles_nestlabs_dropcam_legacy_pairingHEADERS \
	uninstall-weave_profiles_nestlabs_heat_linkHEADERS \
	uninstall-weave_profiles_nestlabs_hvac_equipment_controlHEADERS \
	uninstall-weave_profiles_nestlabs_protectHEADERS \
	uninstall-weave_profiles_nestlabs_thermostatHEADERS \
	uninstall-weave_profiles_nestlabs_time_variant_dataHEADERS \
	uninstall-weave_profiles_network_provisioningHEADERS \
	uninstall-weave_profiles_securityHEADERS \
	uninstall-weave_profiles_service_directoryHEADERS \
	uninstall-weave_profiles_service_provisioningHEADERS \
	uninstall-weave_profiles_software_updateHEADERS \
	uninstall-weave_profiles_status_reportHEADERS \
	uninstall-weave_profiles_timeHEADERS \
	uninstall-weave_profiles_token_pairingHEADERS \
	uninstall-weave_profiles_weave_tunnelingHEADERS

.MAKE: all check install install-am install-strip

.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
	clean-libtool clean-local cscopelist-am ctags ctags-am \
	dist-hook distclean distclean-generic distclean-hdr \
	distclean-libtool distclean-tags distdir dvi dvi-am html \
	html-am info info-am install install-am install-data \
	install-data-am install-dist_ble_bleHEADERS \
	install-dist_ble_device_managerHEADERS \
	install-dist_inetHEADERS install-dist_micro_eccHEADERS \
	install-dist_mincryptHEADERS install-dist_systemHEADERS \
	install-dist_warmHEADERS install-dist_weaveHEADERS \
	install-dist_weave_coreHEADERS \
	install-dist_weave_support_baseHEADERS \
	install-dist_weave_support_cryptoHEADERS \
	install-dist_weave_support_loggingHEADERS \
	install-dist_weave_support_platformHEADERS \
	install-dist_weave_support_verhoeffHEADERS 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-pdf install-pdf-am \
	install-ps install-ps-am install-strip \
	install-weave_profiles_baseHEADERS \
	install-weave_profiles_bulk_data_transferHEADERS \
	install-weave_profiles_bulk_data_transfer_currentHEADERS \
	install-weave_profiles_bulk_data_transfer_developmentHEADERS \
	install-weave_profiles_commonHEADERS \
	install-weave_profiles_data_managementHEADERS \
	install-weave_profiles_data_management_currentHEADERS \
	install-weave_profiles_data_management_legacyHEADERS \
	install-weave_profiles_device_controlHEADERS \
	install-weave_profiles_device_descriptionHEADERS \
	install-weave_profiles_echoHEADERS \
	install-weave_profiles_fabric_provisioningHEADERS \
	install-weave_profiles_heartbeatHEADERS \
	install-weave_profiles_localeHEADERS \
	install-weave_profiles_nestlabs_alarmHEADERS \
	install-weave_profiles_nestlabs_boilerHEADERS \
	install-weave_profiles_nestlabs_device_descriptionHEADERS \
	install-weave_profiles_nestlabs_domestic_hot_waterHEADERS \
	install-weave_profiles_nestlabs_dropcam_legacy_pairingHEADERS \
	install-weave_profiles_nestlabs_heat_linkHEADERS \
	install-weave_profiles_nestlabs_hvac_equipment_controlHEADERS \
	install-weave_profiles_nestlabs_protectHEADERS \
	install-weave_profiles_nestlabs_thermostatHEADERS \
	install-weave_profiles_nestlabs_time_variant_dataHEADERS \
	install-weave_profiles_network_provisioningHEADERS \
	install-weave_profiles_securityHEADERS \
	install-weave_profiles_service_directoryHEADERS \
	install-weave_profiles_service_provisioningHEADERS \
	install-weave_profiles_software_updateHEADERS \
	install-weave_profiles_status_reportHEADERS \
	install-weave_profiles_timeHEADERS \
	install-weave_profiles_token_pairingHEADERS \
	install-weave_profiles_weave_tunnelingHEADERS installcheck \
	installcheck-am installdirs maintainer-clean \
	maintainer-clean-generic mostlyclean mostlyclean-generic \
	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
	uninstall-am uninstall-dist_ble_bleHEADERS \
	uninstall-dist_ble_device_managerHEADERS \
	uninstall-dist_inetHEADERS uninstall-dist_micro_eccHEADERS \
	uninstall-dist_mincryptHEADERS uninstall-dist_systemHEADERS \
	uninstall-dist_warmHEADERS uninstall-dist_weaveHEADERS \
	uninstall-dist_weave_coreHEADERS \
	uninstall-dist_weave_support_baseHEADERS \
	uninstall-dist_weave_support_cryptoHEADERS \
	uninstall-dist_weave_support_loggingHEADERS \
	uninstall-dist_weave_support_platformHEADERS \
	uninstall-dist_weave_support_verhoeffHEADERS \
	uninstall-includeHEADERS uninstall-weave_profiles_baseHEADERS \
	uninstall-weave_profiles_bulk_data_transferHEADERS \
	uninstall-weave_profiles_bulk_data_transfer_currentHEADERS \
	uninstall-weave_profiles_bulk_data_transfer_developmentHEADERS \
	uninstall-weave_profiles_commonHEADERS \
	uninstall-weave_profiles_data_managementHEADERS \
	uninstall-weave_profiles_data_management_currentHEADERS \
	uninstall-weave_profiles_data_management_legacyHEADERS \
	uninstall-weave_profiles_device_controlHEADERS \
	uninstall-weave_profiles_device_descriptionHEADERS \
	uninstall-weave_profiles_echoHEADERS \
	uninstall-weave_profiles_fabric_provisioningHEADERS \
	uninstall-weave_profiles_heartbeatHEADERS \
	uninstall-weave_profiles_localeHEADERS \
	uninstall-weave_profiles_nestlabs_alarmHEADERS \
	uninstall-weave_profiles_nestlabs_boilerHEADERS \
	uninstall-weave_profiles_nestlabs_device_descriptionHEADERS \
	uninstall-weave_profiles_nestlabs_domestic_hot_waterHEADERS \
	uninstall-weave_profiles_nestlabs_dropcam_legacy_pairingHEADERS \
	uninstall-weave_profiles_nestlabs_heat_linkHEADERS \
	uninstall-weave_profiles_nestlabs_hvac_equipment_controlHEADERS \
	uninstall-weave_profiles_nestlabs_protectHEADERS \
	uninstall-weave_profiles_nestlabs_thermostatHEADERS \
	uninstall-weave_profiles_nestlabs_time_variant_dataHEADERS \
	uninstall-weave_profiles_network_provisioningHEADERS \
	uninstall-weave_profiles_securityHEADERS \
	uninstall-weave_profiles_service_directoryHEADERS \
	uninstall-weave_profiles_service_provisioningHEADERS \
	uninstall-weave_profiles_software_updateHEADERS \
	uninstall-weave_profiles_status_reportHEADERS \
	uninstall-weave_profiles_timeHEADERS \
	uninstall-weave_profiles_token_pairingHEADERS \
	uninstall-weave_profiles_weave_tunnelingHEADERS


include $(abs_top_nlbuild_autotools_dir)/automake/pre.am

@CONFIG_NETWORK_LAYER_BLE_TRUE@$(nl_public_BleLayer_ble_header_dirs):
@CONFIG_NETWORK_LAYER_BLE_TRUE@	$(call create-directory)

@CONFIG_NETWORK_LAYER_BLE_TRUE@$(nl_public_BleLayer_ble_header_destinations): $(nl_public_BleLayer_ble_destination_dirstem)/%.h: $(abs_srcdir)/../$(nl_public_BleLayer_ble_source_dirstem)/%.h | $(nl_public_BleLayer_ble_header_dirs)
@CONFIG_NETWORK_LAYER_BLE_TRUE@	$(call create-link)
$(NULL)

@CONFIG_NETWORK_LAYER_BLE_TRUE@@WEAVE_ENABLE_WOBLE_TEST_TRUE@$(nl_public_BleLayer_device_manager_header_dirs):
@CONFIG_NETWORK_LAYER_BLE_TRUE@@WEAVE_ENABLE_WOBLE_TEST_TRUE@	$(call create-directory)

@CONFIG_NETWORK_LAYER_BLE_TRUE@@WEAVE_ENABLE_WOBLE_TEST_TRUE@$(nl_public_BleLayer_device_manager_header_destinations): $(nl_public_BleLayer_device_manager_destination_dirstem)/%.h: $(abs_srcdir)/../$(nl_public_BleLayer_device_manager_source_dirstem)/%.h | $(nl_public_BleLayer_device_manager_header_dirs)
@CONFIG_NETWORK_LAYER_BLE_TRUE@@WEAVE_ENABLE_WOBLE_TEST_TRUE@	$(call create-link)

$(nl_public_InetLayer_header_dirs):
	$(call create-directory)

$(nl_public_InetLayer_header_destinations): $(nl_public_InetLayer_destination_dirstem)/%.h: $(abs_srcdir)/../$(nl_public_InetLayer_source_dirstem)/%.h | $(nl_public_InetLayer_header_dirs)
	$(call create-link)

$(nl_public_SystemLayer_header_dirs):
	$(call create-directory)

$(nl_public_SystemLayer_header_destinations): $(nl_public_SystemLayer_destination_dirstem)/%.h: $(abs_srcdir)/../$(nl_public_SystemLayer_source_dirstem)/%.h | $(nl_public_SystemLayer_header_dirs)
	$(call create-link)

$(nl_public_Warm_header_dirs):
	$(call create-directory)

$(nl_public_Warm_header_destinations): $(nl_public_Warm_destination_dirstem)/%.h: $(abs_srcdir)/../$(nl_public_Warm_source_dirstem)/%.h | $(nl_public_Warm_header_dirs)
	$(call create-link)

$(nl_public_Weave_header_dirs):
	$(call create-directory)

# Auto-generation targets to force the creation and subsequent check
# and re-generation of Weave/WeaveVersion.h.

.PHONY: force
$(nl_public_Weave_destination_dirstem)/WeaveVersion.h: force

define check-file-WeaveVersion.h
$(top_srcdir)/build/scripts/gen-weave-version "`cat $(1)`" -o "$(2)"
endef # check-file-WeaveVersion.h

$(nl_public_Weave_destination_dirstem)/WeaveVersion.h: $(top_builddir)/.local-version | $(nl_public_Weave_destination_dirstem)
	$(call check-file,WeaveVersion.h)

$(nl_public_WeaveSupport_header_dirs):
	$(call create-directory)

$(filter %.h,$(nl_public_WeaveSupport_header_destinations)): $(nl_public_WeaveSupport_destination_dirstem)/%.h: $(abs_srcdir)/../$(nl_public_WeaveSupport_source_dirstem)/%.h | $(nl_public_WeaveSupport_header_dirs)
	$(call create-link)

$(filter %.hpp,$(nl_public_WeaveSupport_header_destinations)): $(nl_public_WeaveSupport_destination_dirstem)/%.hpp: $(abs_srcdir)/../$(nl_public_WeaveSupport_source_dirstem)/%.hpp | $(nl_public_WeaveSupport_header_dirs)
	$(call create-link)

$(nl_public_WeaveCore_header_dirs):
	$(call create-directory)

$(filter %.h,$(nl_public_WeaveCore_header_destinations)): $(nl_public_WeaveCore_destination_dirstem)/%.h: $(abs_srcdir)/../$(nl_public_WeaveCore_source_dirstem)/%.h | $(nl_public_WeaveCore_header_dirs)
	$(call create-link)

$(filter %.hpp,$(nl_public_WeaveCore_header_destinations)): $(nl_public_WeaveCore_destination_dirstem)/%.hpp: $(abs_srcdir)/../$(nl_public_WeaveCore_source_dirstem)/%.hpp | $(nl_public_WeaveCore_header_dirs)
	$(call create-link)

$(nl_public_WeaveProfiles_header_dirs):
	$(call create-directory)

$(filter %.h,$(nl_public_WeaveProfiles_header_destinations)): $(nl_public_WeaveProfiles_destination_dirstem)/%.h: $(abs_srcdir)/../$(nl_public_WeaveProfiles_source_dirstem)/%.h | $(nl_public_WeaveProfiles_header_dirs)
	$(call create-link)

$(filter %.hpp,$(nl_public_WeaveProfiles_header_destinations)): $(nl_public_WeaveProfiles_destination_dirstem)/%.hpp: $(abs_srcdir)/../$(nl_public_WeaveProfiles_source_dirstem)/%.hpp | $(nl_public_WeaveProfiles_header_dirs)
	$(call create-link)

$(tps_public_micro_ecc_header_dirs):
	$(call create-directory)

$(tps_public_micro_ecc_header_destinations): $(tps_public_micro_ecc_destination_dirstem)/%.h: $(abs_srcdir)/../$(tps_public_micro_ecc_source_dirstem)/%.h | $(tps_public_micro_ecc_header_dirs)
	$(call create-link)

$(tps_public_mincrypt_header_dirs):
	$(call create-directory)

$(tps_public_mincrypt_header_destinations): $(tps_public_mincrypt_destination_dirstem)/%.h: $(abs_srcdir)/../$(tps_public_mincrypt_source_dirstem)/%.h | $(tps_public_mincrypt_header_dirs)
	$(call create-link)

# Ensure that auto-generated content such as BuildConfig.h and
# Weave/WeaveVersion.h, while public API headers, are scrubbed out of
# the source distribution.

dist-hook:
	$(AM_V_at)rm -f $(distdir)/BuildConfig.h
	$(AM_V_at)rm -f $(distdir)/$(nl_public_Weave_destination_dirstem)/WeaveVersion.h
	$(AM_V_at)rmdir $(distdir)/$(nl_public_Weave_destination_dirstem)

install-headers: install-data

# Ensure that any created parent directories from symlinking are also
# cleaned up.

clean-local:
	$(AM_V_at)rm -f -r $(nl_public_header_dirs) $(tps_public_header_dirs)

include $(abs_top_nlbuild_autotools_dir)/automake/post.am

# 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:
