# 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 the Nest Weave
#      command line utility.


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@
@WEAVE_BUILD_TOOLS_TRUE@libexec_PROGRAMS = weave$(EXEEXT)
subdir = src/tools/weave
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
	$(top_srcdir)/third_party/nlbuild-autotools/repo/autoconf/mkinstalldirs \
	$(top_srcdir)/third_party/nlbuild-autotools/repo/autoconf/depcomp \
	$(am__noinst_HEADERS_DIST)
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 = $(top_builddir)/src/include/BuildConfig.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
am__installdirs = "$(DESTDIR)$(libexecdir)"
PROGRAMS = $(libexec_PROGRAMS)
am__weave_SOURCES_DIST = CertUtils.cpp Cmd_ConvertCert.cpp \
	Cmd_ConvertKey.cpp Cmd_GenCACert.cpp \
	Cmd_GenCodeSigningCert.cpp Cmd_GenDeviceCert.cpp \
	Cmd_GenGeneralCert.cpp Cmd_GenProvisioningData.cpp \
	Cmd_GenServiceEndpointCert.cpp Cmd_MakeAccessToken.cpp \
	Cmd_MakeServiceConfig.cpp Cmd_PrintCert.cpp Cmd_PrintTLV.cpp \
	Cmd_ValidateCert.cpp Cmd_ResignCert.cpp GeneralUtils.cpp \
	KeyUtils.cpp weave-tool.cpp
@WEAVE_BUILD_TOOLS_TRUE@am_weave_OBJECTS = weave-CertUtils.$(OBJEXT) \
@WEAVE_BUILD_TOOLS_TRUE@	weave-Cmd_ConvertCert.$(OBJEXT) \
@WEAVE_BUILD_TOOLS_TRUE@	weave-Cmd_ConvertKey.$(OBJEXT) \
@WEAVE_BUILD_TOOLS_TRUE@	weave-Cmd_GenCACert.$(OBJEXT) \
@WEAVE_BUILD_TOOLS_TRUE@	weave-Cmd_GenCodeSigningCert.$(OBJEXT) \
@WEAVE_BUILD_TOOLS_TRUE@	weave-Cmd_GenDeviceCert.$(OBJEXT) \
@WEAVE_BUILD_TOOLS_TRUE@	weave-Cmd_GenGeneralCert.$(OBJEXT) \
@WEAVE_BUILD_TOOLS_TRUE@	weave-Cmd_GenProvisioningData.$(OBJEXT) \
@WEAVE_BUILD_TOOLS_TRUE@	weave-Cmd_GenServiceEndpointCert.$(OBJEXT) \
@WEAVE_BUILD_TOOLS_TRUE@	weave-Cmd_MakeAccessToken.$(OBJEXT) \
@WEAVE_BUILD_TOOLS_TRUE@	weave-Cmd_MakeServiceConfig.$(OBJEXT) \
@WEAVE_BUILD_TOOLS_TRUE@	weave-Cmd_PrintCert.$(OBJEXT) \
@WEAVE_BUILD_TOOLS_TRUE@	weave-Cmd_PrintTLV.$(OBJEXT) \
@WEAVE_BUILD_TOOLS_TRUE@	weave-Cmd_ValidateCert.$(OBJEXT) \
@WEAVE_BUILD_TOOLS_TRUE@	weave-Cmd_ResignCert.$(OBJEXT) \
@WEAVE_BUILD_TOOLS_TRUE@	weave-GeneralUtils.$(OBJEXT) \
@WEAVE_BUILD_TOOLS_TRUE@	weave-KeyUtils.$(OBJEXT) \
@WEAVE_BUILD_TOOLS_TRUE@	weave-weave-tool.$(OBJEXT)
weave_OBJECTS = $(am_weave_OBJECTS)
am__DEPENDENCIES_1 =
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 = 
weave_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(weave_CXXFLAGS) \
	$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
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 = 
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src/include
depcomp = $(SHELL) \
	$(top_srcdir)/third_party/nlbuild-autotools/repo/autoconf/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
	$(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
	$(AM_CXXFLAGS) $(CXXFLAGS)
AM_V_CXX = $(am__v_CXX_@AM_V@)
am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
am__v_CXX_0 = @echo "  CXX     " $@;
am__v_CXX_1 = 
CXXLD = $(CXX)
CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
	$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
am__v_CXXLD_0 = @echo "  CXXLD   " $@;
am__v_CXXLD_1 = 
SOURCES = $(weave_SOURCES)
DIST_SOURCES = $(am__weave_SOURCES_DIST)
am__can_run_installinfo = \
  case $$AM_UPDATE_INFO_DIR in \
    n|no|NO) false;; \
    *) (install-info --version) >/dev/null 2>&1;; \
  esac
am__noinst_HEADERS_DIST = weave-tool.h
HEADERS = $(noinst_HEADERS)
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# 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@
@WEAVE_BUILD_TOOLS_TRUE@noinst_HEADERS = \
@WEAVE_BUILD_TOOLS_TRUE@    weave-tool.h                          \
@WEAVE_BUILD_TOOLS_TRUE@    $(NULL)

@WEAVE_BUILD_TOOLS_TRUE@weave_SOURCES = \
@WEAVE_BUILD_TOOLS_TRUE@    CertUtils.cpp                         \
@WEAVE_BUILD_TOOLS_TRUE@    Cmd_ConvertCert.cpp                   \
@WEAVE_BUILD_TOOLS_TRUE@    Cmd_ConvertKey.cpp                    \
@WEAVE_BUILD_TOOLS_TRUE@    Cmd_GenCACert.cpp                     \
@WEAVE_BUILD_TOOLS_TRUE@    Cmd_GenCodeSigningCert.cpp            \
@WEAVE_BUILD_TOOLS_TRUE@    Cmd_GenDeviceCert.cpp                 \
@WEAVE_BUILD_TOOLS_TRUE@    Cmd_GenGeneralCert.cpp                \
@WEAVE_BUILD_TOOLS_TRUE@    Cmd_GenProvisioningData.cpp           \
@WEAVE_BUILD_TOOLS_TRUE@    Cmd_GenServiceEndpointCert.cpp        \
@WEAVE_BUILD_TOOLS_TRUE@    Cmd_MakeAccessToken.cpp               \
@WEAVE_BUILD_TOOLS_TRUE@    Cmd_MakeServiceConfig.cpp             \
@WEAVE_BUILD_TOOLS_TRUE@    Cmd_PrintCert.cpp                     \
@WEAVE_BUILD_TOOLS_TRUE@    Cmd_PrintTLV.cpp                      \
@WEAVE_BUILD_TOOLS_TRUE@    Cmd_ValidateCert.cpp                  \
@WEAVE_BUILD_TOOLS_TRUE@    Cmd_ResignCert.cpp                    \
@WEAVE_BUILD_TOOLS_TRUE@    GeneralUtils.cpp                      \
@WEAVE_BUILD_TOOLS_TRUE@    KeyUtils.cpp                          \
@WEAVE_BUILD_TOOLS_TRUE@    weave-tool.cpp                        \
@WEAVE_BUILD_TOOLS_TRUE@    $(NULL)

@WEAVE_BUILD_TOOLS_TRUE@weave_CPPFLAGS = \
@WEAVE_BUILD_TOOLS_TRUE@    $(AM_CPPFLAGS)                        \
@WEAVE_BUILD_TOOLS_TRUE@    -I$(top_srcdir)/src/include           \
@WEAVE_BUILD_TOOLS_TRUE@    $(LWIP_CPPFLAGS)                      \
@WEAVE_BUILD_TOOLS_TRUE@    $(SOCKETS_CPPFLAGS)                   \
@WEAVE_BUILD_TOOLS_TRUE@    $(NULL)

@WEAVE_BUILD_TOOLS_TRUE@weave_CXXFLAGS = \
@WEAVE_BUILD_TOOLS_TRUE@    $(PTHREAD_CFLAGS)                     \
@WEAVE_BUILD_TOOLS_TRUE@    $(NULL)

@WEAVE_BUILD_TOOLS_TRUE@weave_LDADD = \
@WEAVE_BUILD_TOOLS_TRUE@    -L$(top_builddir)/src/lib -lWeave     \
@WEAVE_BUILD_TOOLS_TRUE@    $(LWIP_LDFLAGS) $(LWIP_LIBS)          \
@WEAVE_BUILD_TOOLS_TRUE@    $(SOCKETS_LDFLAGS) $(SOCKETS_LIBS)    \
@WEAVE_BUILD_TOOLS_TRUE@    $(PTHREAD_LIBS)                       \
@WEAVE_BUILD_TOOLS_TRUE@    $(NULL)

@WEAVE_BUILD_TOOLS_TRUE@weave_DEPENDENCIES = \
@WEAVE_BUILD_TOOLS_TRUE@    $(top_builddir)/src/lib/libWeave.a    \
@WEAVE_BUILD_TOOLS_TRUE@    $(NULL)


# The bin_LINKS variable enumerates programs that need to be
# "trampolined" through the 'weave-run' script due to runtime
# dependencies on DLLs/DSOs that the runtime linker / loader will need
# to resolve when they invoked.
@WEAVE_BUILD_TOOLS_TRUE@bin_LINKS = \
@WEAVE_BUILD_TOOLS_TRUE@    $(libexec_PROGRAMS)                   \
@WEAVE_BUILD_TOOLS_TRUE@    $(NULL)

all: all-am

.SUFFIXES:
.SUFFIXES: .cpp .lo .o .obj
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
	@for dep in $?; do \
	  case '$(am__configure_deps)' in \
	    *$$dep*) \
	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
	        && { if test -f $@; then exit 0; else break; fi; }; \
	      exit 1;; \
	  esac; \
	done; \
	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/tools/weave/Makefile'; \
	$(am__cd) $(top_srcdir) && \
	  $(AUTOMAKE) --foreign src/tools/weave/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):
install-libexecPROGRAMS: $(libexec_PROGRAMS)
	@$(NORMAL_INSTALL)
	@list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(libexecdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(libexecdir)" || exit 1; \
	fi; \
	for p in $$list; do echo "$$p $$p"; done | \
	sed 's/$(EXEEXT)$$//' | \
	while read p p1; do if test -f $$p \
	 || test -f $$p1 \
	  ; then echo "$$p"; echo "$$p"; else :; fi; \
	done | \
	sed -e 'p;s,.*/,,;n;h' \
	    -e 's|.*|.|' \
	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
	sed 'N;N;N;s,\n, ,g' | \
	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
	    else { print "f", $$3 "/" $$4, $$1; } } \
	  END { for (d in files) print "f", d, files[d] }' | \
	while read type dir files; do \
	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
	    test -z "$$files" || { \
	    echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(libexecdir)$$dir'"; \
	    $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(libexecdir)$$dir" || exit $$?; \
	    } \
	; done

uninstall-libexecPROGRAMS:
	@$(NORMAL_UNINSTALL)
	@list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \
	files=`for p in $$list; do echo "$$p"; done | \
	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
	      -e 's/$$/$(EXEEXT)/' \
	`; \
	test -n "$$list" || exit 0; \
	echo " ( cd '$(DESTDIR)$(libexecdir)' && rm -f" $$files ")"; \
	cd "$(DESTDIR)$(libexecdir)" && rm -f $$files

clean-libexecPROGRAMS:
	@list='$(libexec_PROGRAMS)'; test -n "$$list" || exit 0; \
	echo " rm -f" $$list; \
	rm -f $$list || exit $$?; \
	test -n "$(EXEEXT)" || exit 0; \
	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
	echo " rm -f" $$list; \
	rm -f $$list

weave$(EXEEXT): $(weave_OBJECTS) $(weave_DEPENDENCIES) $(EXTRA_weave_DEPENDENCIES) 
	@rm -f weave$(EXEEXT)
	$(AM_V_CXXLD)$(weave_LINK) $(weave_OBJECTS) $(weave_LDADD) $(LIBS)

mostlyclean-compile:
	-rm -f *.$(OBJEXT)

distclean-compile:
	-rm -f *.tab.c

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/weave-CertUtils.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/weave-Cmd_ConvertCert.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/weave-Cmd_ConvertKey.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/weave-Cmd_GenCACert.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/weave-Cmd_GenCodeSigningCert.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/weave-Cmd_GenDeviceCert.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/weave-Cmd_GenGeneralCert.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/weave-Cmd_GenProvisioningData.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/weave-Cmd_GenServiceEndpointCert.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/weave-Cmd_MakeAccessToken.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/weave-Cmd_MakeServiceConfig.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/weave-Cmd_PrintCert.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/weave-Cmd_PrintTLV.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/weave-Cmd_ResignCert.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/weave-Cmd_ValidateCert.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/weave-GeneralUtils.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/weave-KeyUtils.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/weave-weave-tool.Po@am__quote@

.cpp.o:
@am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
@am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<

.cpp.obj:
@am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
@am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
@am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`

.cpp.lo:
@am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
@am__fastdepCXX_TRUE@	$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
@am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Plo
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<

weave-CertUtils.o: CertUtils.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-CertUtils.o -MD -MP -MF $(DEPDIR)/weave-CertUtils.Tpo -c -o weave-CertUtils.o `test -f 'CertUtils.cpp' || echo '$(srcdir)/'`CertUtils.cpp
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-CertUtils.Tpo $(DEPDIR)/weave-CertUtils.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='CertUtils.cpp' object='weave-CertUtils.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-CertUtils.o `test -f 'CertUtils.cpp' || echo '$(srcdir)/'`CertUtils.cpp

weave-CertUtils.obj: CertUtils.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-CertUtils.obj -MD -MP -MF $(DEPDIR)/weave-CertUtils.Tpo -c -o weave-CertUtils.obj `if test -f 'CertUtils.cpp'; then $(CYGPATH_W) 'CertUtils.cpp'; else $(CYGPATH_W) '$(srcdir)/CertUtils.cpp'; fi`
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-CertUtils.Tpo $(DEPDIR)/weave-CertUtils.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='CertUtils.cpp' object='weave-CertUtils.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-CertUtils.obj `if test -f 'CertUtils.cpp'; then $(CYGPATH_W) 'CertUtils.cpp'; else $(CYGPATH_W) '$(srcdir)/CertUtils.cpp'; fi`

weave-Cmd_ConvertCert.o: Cmd_ConvertCert.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-Cmd_ConvertCert.o -MD -MP -MF $(DEPDIR)/weave-Cmd_ConvertCert.Tpo -c -o weave-Cmd_ConvertCert.o `test -f 'Cmd_ConvertCert.cpp' || echo '$(srcdir)/'`Cmd_ConvertCert.cpp
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-Cmd_ConvertCert.Tpo $(DEPDIR)/weave-Cmd_ConvertCert.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Cmd_ConvertCert.cpp' object='weave-Cmd_ConvertCert.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-Cmd_ConvertCert.o `test -f 'Cmd_ConvertCert.cpp' || echo '$(srcdir)/'`Cmd_ConvertCert.cpp

weave-Cmd_ConvertCert.obj: Cmd_ConvertCert.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-Cmd_ConvertCert.obj -MD -MP -MF $(DEPDIR)/weave-Cmd_ConvertCert.Tpo -c -o weave-Cmd_ConvertCert.obj `if test -f 'Cmd_ConvertCert.cpp'; then $(CYGPATH_W) 'Cmd_ConvertCert.cpp'; else $(CYGPATH_W) '$(srcdir)/Cmd_ConvertCert.cpp'; fi`
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-Cmd_ConvertCert.Tpo $(DEPDIR)/weave-Cmd_ConvertCert.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Cmd_ConvertCert.cpp' object='weave-Cmd_ConvertCert.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-Cmd_ConvertCert.obj `if test -f 'Cmd_ConvertCert.cpp'; then $(CYGPATH_W) 'Cmd_ConvertCert.cpp'; else $(CYGPATH_W) '$(srcdir)/Cmd_ConvertCert.cpp'; fi`

weave-Cmd_ConvertKey.o: Cmd_ConvertKey.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-Cmd_ConvertKey.o -MD -MP -MF $(DEPDIR)/weave-Cmd_ConvertKey.Tpo -c -o weave-Cmd_ConvertKey.o `test -f 'Cmd_ConvertKey.cpp' || echo '$(srcdir)/'`Cmd_ConvertKey.cpp
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-Cmd_ConvertKey.Tpo $(DEPDIR)/weave-Cmd_ConvertKey.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Cmd_ConvertKey.cpp' object='weave-Cmd_ConvertKey.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-Cmd_ConvertKey.o `test -f 'Cmd_ConvertKey.cpp' || echo '$(srcdir)/'`Cmd_ConvertKey.cpp

weave-Cmd_ConvertKey.obj: Cmd_ConvertKey.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-Cmd_ConvertKey.obj -MD -MP -MF $(DEPDIR)/weave-Cmd_ConvertKey.Tpo -c -o weave-Cmd_ConvertKey.obj `if test -f 'Cmd_ConvertKey.cpp'; then $(CYGPATH_W) 'Cmd_ConvertKey.cpp'; else $(CYGPATH_W) '$(srcdir)/Cmd_ConvertKey.cpp'; fi`
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-Cmd_ConvertKey.Tpo $(DEPDIR)/weave-Cmd_ConvertKey.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Cmd_ConvertKey.cpp' object='weave-Cmd_ConvertKey.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-Cmd_ConvertKey.obj `if test -f 'Cmd_ConvertKey.cpp'; then $(CYGPATH_W) 'Cmd_ConvertKey.cpp'; else $(CYGPATH_W) '$(srcdir)/Cmd_ConvertKey.cpp'; fi`

weave-Cmd_GenCACert.o: Cmd_GenCACert.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-Cmd_GenCACert.o -MD -MP -MF $(DEPDIR)/weave-Cmd_GenCACert.Tpo -c -o weave-Cmd_GenCACert.o `test -f 'Cmd_GenCACert.cpp' || echo '$(srcdir)/'`Cmd_GenCACert.cpp
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-Cmd_GenCACert.Tpo $(DEPDIR)/weave-Cmd_GenCACert.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Cmd_GenCACert.cpp' object='weave-Cmd_GenCACert.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-Cmd_GenCACert.o `test -f 'Cmd_GenCACert.cpp' || echo '$(srcdir)/'`Cmd_GenCACert.cpp

weave-Cmd_GenCACert.obj: Cmd_GenCACert.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-Cmd_GenCACert.obj -MD -MP -MF $(DEPDIR)/weave-Cmd_GenCACert.Tpo -c -o weave-Cmd_GenCACert.obj `if test -f 'Cmd_GenCACert.cpp'; then $(CYGPATH_W) 'Cmd_GenCACert.cpp'; else $(CYGPATH_W) '$(srcdir)/Cmd_GenCACert.cpp'; fi`
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-Cmd_GenCACert.Tpo $(DEPDIR)/weave-Cmd_GenCACert.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Cmd_GenCACert.cpp' object='weave-Cmd_GenCACert.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-Cmd_GenCACert.obj `if test -f 'Cmd_GenCACert.cpp'; then $(CYGPATH_W) 'Cmd_GenCACert.cpp'; else $(CYGPATH_W) '$(srcdir)/Cmd_GenCACert.cpp'; fi`

weave-Cmd_GenCodeSigningCert.o: Cmd_GenCodeSigningCert.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-Cmd_GenCodeSigningCert.o -MD -MP -MF $(DEPDIR)/weave-Cmd_GenCodeSigningCert.Tpo -c -o weave-Cmd_GenCodeSigningCert.o `test -f 'Cmd_GenCodeSigningCert.cpp' || echo '$(srcdir)/'`Cmd_GenCodeSigningCert.cpp
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-Cmd_GenCodeSigningCert.Tpo $(DEPDIR)/weave-Cmd_GenCodeSigningCert.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Cmd_GenCodeSigningCert.cpp' object='weave-Cmd_GenCodeSigningCert.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-Cmd_GenCodeSigningCert.o `test -f 'Cmd_GenCodeSigningCert.cpp' || echo '$(srcdir)/'`Cmd_GenCodeSigningCert.cpp

weave-Cmd_GenCodeSigningCert.obj: Cmd_GenCodeSigningCert.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-Cmd_GenCodeSigningCert.obj -MD -MP -MF $(DEPDIR)/weave-Cmd_GenCodeSigningCert.Tpo -c -o weave-Cmd_GenCodeSigningCert.obj `if test -f 'Cmd_GenCodeSigningCert.cpp'; then $(CYGPATH_W) 'Cmd_GenCodeSigningCert.cpp'; else $(CYGPATH_W) '$(srcdir)/Cmd_GenCodeSigningCert.cpp'; fi`
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-Cmd_GenCodeSigningCert.Tpo $(DEPDIR)/weave-Cmd_GenCodeSigningCert.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Cmd_GenCodeSigningCert.cpp' object='weave-Cmd_GenCodeSigningCert.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-Cmd_GenCodeSigningCert.obj `if test -f 'Cmd_GenCodeSigningCert.cpp'; then $(CYGPATH_W) 'Cmd_GenCodeSigningCert.cpp'; else $(CYGPATH_W) '$(srcdir)/Cmd_GenCodeSigningCert.cpp'; fi`

weave-Cmd_GenDeviceCert.o: Cmd_GenDeviceCert.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-Cmd_GenDeviceCert.o -MD -MP -MF $(DEPDIR)/weave-Cmd_GenDeviceCert.Tpo -c -o weave-Cmd_GenDeviceCert.o `test -f 'Cmd_GenDeviceCert.cpp' || echo '$(srcdir)/'`Cmd_GenDeviceCert.cpp
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-Cmd_GenDeviceCert.Tpo $(DEPDIR)/weave-Cmd_GenDeviceCert.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Cmd_GenDeviceCert.cpp' object='weave-Cmd_GenDeviceCert.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-Cmd_GenDeviceCert.o `test -f 'Cmd_GenDeviceCert.cpp' || echo '$(srcdir)/'`Cmd_GenDeviceCert.cpp

weave-Cmd_GenDeviceCert.obj: Cmd_GenDeviceCert.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-Cmd_GenDeviceCert.obj -MD -MP -MF $(DEPDIR)/weave-Cmd_GenDeviceCert.Tpo -c -o weave-Cmd_GenDeviceCert.obj `if test -f 'Cmd_GenDeviceCert.cpp'; then $(CYGPATH_W) 'Cmd_GenDeviceCert.cpp'; else $(CYGPATH_W) '$(srcdir)/Cmd_GenDeviceCert.cpp'; fi`
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-Cmd_GenDeviceCert.Tpo $(DEPDIR)/weave-Cmd_GenDeviceCert.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Cmd_GenDeviceCert.cpp' object='weave-Cmd_GenDeviceCert.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-Cmd_GenDeviceCert.obj `if test -f 'Cmd_GenDeviceCert.cpp'; then $(CYGPATH_W) 'Cmd_GenDeviceCert.cpp'; else $(CYGPATH_W) '$(srcdir)/Cmd_GenDeviceCert.cpp'; fi`

weave-Cmd_GenGeneralCert.o: Cmd_GenGeneralCert.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-Cmd_GenGeneralCert.o -MD -MP -MF $(DEPDIR)/weave-Cmd_GenGeneralCert.Tpo -c -o weave-Cmd_GenGeneralCert.o `test -f 'Cmd_GenGeneralCert.cpp' || echo '$(srcdir)/'`Cmd_GenGeneralCert.cpp
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-Cmd_GenGeneralCert.Tpo $(DEPDIR)/weave-Cmd_GenGeneralCert.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Cmd_GenGeneralCert.cpp' object='weave-Cmd_GenGeneralCert.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-Cmd_GenGeneralCert.o `test -f 'Cmd_GenGeneralCert.cpp' || echo '$(srcdir)/'`Cmd_GenGeneralCert.cpp

weave-Cmd_GenGeneralCert.obj: Cmd_GenGeneralCert.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-Cmd_GenGeneralCert.obj -MD -MP -MF $(DEPDIR)/weave-Cmd_GenGeneralCert.Tpo -c -o weave-Cmd_GenGeneralCert.obj `if test -f 'Cmd_GenGeneralCert.cpp'; then $(CYGPATH_W) 'Cmd_GenGeneralCert.cpp'; else $(CYGPATH_W) '$(srcdir)/Cmd_GenGeneralCert.cpp'; fi`
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-Cmd_GenGeneralCert.Tpo $(DEPDIR)/weave-Cmd_GenGeneralCert.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Cmd_GenGeneralCert.cpp' object='weave-Cmd_GenGeneralCert.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-Cmd_GenGeneralCert.obj `if test -f 'Cmd_GenGeneralCert.cpp'; then $(CYGPATH_W) 'Cmd_GenGeneralCert.cpp'; else $(CYGPATH_W) '$(srcdir)/Cmd_GenGeneralCert.cpp'; fi`

weave-Cmd_GenProvisioningData.o: Cmd_GenProvisioningData.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-Cmd_GenProvisioningData.o -MD -MP -MF $(DEPDIR)/weave-Cmd_GenProvisioningData.Tpo -c -o weave-Cmd_GenProvisioningData.o `test -f 'Cmd_GenProvisioningData.cpp' || echo '$(srcdir)/'`Cmd_GenProvisioningData.cpp
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-Cmd_GenProvisioningData.Tpo $(DEPDIR)/weave-Cmd_GenProvisioningData.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Cmd_GenProvisioningData.cpp' object='weave-Cmd_GenProvisioningData.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-Cmd_GenProvisioningData.o `test -f 'Cmd_GenProvisioningData.cpp' || echo '$(srcdir)/'`Cmd_GenProvisioningData.cpp

weave-Cmd_GenProvisioningData.obj: Cmd_GenProvisioningData.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-Cmd_GenProvisioningData.obj -MD -MP -MF $(DEPDIR)/weave-Cmd_GenProvisioningData.Tpo -c -o weave-Cmd_GenProvisioningData.obj `if test -f 'Cmd_GenProvisioningData.cpp'; then $(CYGPATH_W) 'Cmd_GenProvisioningData.cpp'; else $(CYGPATH_W) '$(srcdir)/Cmd_GenProvisioningData.cpp'; fi`
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-Cmd_GenProvisioningData.Tpo $(DEPDIR)/weave-Cmd_GenProvisioningData.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Cmd_GenProvisioningData.cpp' object='weave-Cmd_GenProvisioningData.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-Cmd_GenProvisioningData.obj `if test -f 'Cmd_GenProvisioningData.cpp'; then $(CYGPATH_W) 'Cmd_GenProvisioningData.cpp'; else $(CYGPATH_W) '$(srcdir)/Cmd_GenProvisioningData.cpp'; fi`

weave-Cmd_GenServiceEndpointCert.o: Cmd_GenServiceEndpointCert.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-Cmd_GenServiceEndpointCert.o -MD -MP -MF $(DEPDIR)/weave-Cmd_GenServiceEndpointCert.Tpo -c -o weave-Cmd_GenServiceEndpointCert.o `test -f 'Cmd_GenServiceEndpointCert.cpp' || echo '$(srcdir)/'`Cmd_GenServiceEndpointCert.cpp
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-Cmd_GenServiceEndpointCert.Tpo $(DEPDIR)/weave-Cmd_GenServiceEndpointCert.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Cmd_GenServiceEndpointCert.cpp' object='weave-Cmd_GenServiceEndpointCert.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-Cmd_GenServiceEndpointCert.o `test -f 'Cmd_GenServiceEndpointCert.cpp' || echo '$(srcdir)/'`Cmd_GenServiceEndpointCert.cpp

weave-Cmd_GenServiceEndpointCert.obj: Cmd_GenServiceEndpointCert.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-Cmd_GenServiceEndpointCert.obj -MD -MP -MF $(DEPDIR)/weave-Cmd_GenServiceEndpointCert.Tpo -c -o weave-Cmd_GenServiceEndpointCert.obj `if test -f 'Cmd_GenServiceEndpointCert.cpp'; then $(CYGPATH_W) 'Cmd_GenServiceEndpointCert.cpp'; else $(CYGPATH_W) '$(srcdir)/Cmd_GenServiceEndpointCert.cpp'; fi`
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-Cmd_GenServiceEndpointCert.Tpo $(DEPDIR)/weave-Cmd_GenServiceEndpointCert.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Cmd_GenServiceEndpointCert.cpp' object='weave-Cmd_GenServiceEndpointCert.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-Cmd_GenServiceEndpointCert.obj `if test -f 'Cmd_GenServiceEndpointCert.cpp'; then $(CYGPATH_W) 'Cmd_GenServiceEndpointCert.cpp'; else $(CYGPATH_W) '$(srcdir)/Cmd_GenServiceEndpointCert.cpp'; fi`

weave-Cmd_MakeAccessToken.o: Cmd_MakeAccessToken.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-Cmd_MakeAccessToken.o -MD -MP -MF $(DEPDIR)/weave-Cmd_MakeAccessToken.Tpo -c -o weave-Cmd_MakeAccessToken.o `test -f 'Cmd_MakeAccessToken.cpp' || echo '$(srcdir)/'`Cmd_MakeAccessToken.cpp
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-Cmd_MakeAccessToken.Tpo $(DEPDIR)/weave-Cmd_MakeAccessToken.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Cmd_MakeAccessToken.cpp' object='weave-Cmd_MakeAccessToken.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-Cmd_MakeAccessToken.o `test -f 'Cmd_MakeAccessToken.cpp' || echo '$(srcdir)/'`Cmd_MakeAccessToken.cpp

weave-Cmd_MakeAccessToken.obj: Cmd_MakeAccessToken.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-Cmd_MakeAccessToken.obj -MD -MP -MF $(DEPDIR)/weave-Cmd_MakeAccessToken.Tpo -c -o weave-Cmd_MakeAccessToken.obj `if test -f 'Cmd_MakeAccessToken.cpp'; then $(CYGPATH_W) 'Cmd_MakeAccessToken.cpp'; else $(CYGPATH_W) '$(srcdir)/Cmd_MakeAccessToken.cpp'; fi`
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-Cmd_MakeAccessToken.Tpo $(DEPDIR)/weave-Cmd_MakeAccessToken.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Cmd_MakeAccessToken.cpp' object='weave-Cmd_MakeAccessToken.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-Cmd_MakeAccessToken.obj `if test -f 'Cmd_MakeAccessToken.cpp'; then $(CYGPATH_W) 'Cmd_MakeAccessToken.cpp'; else $(CYGPATH_W) '$(srcdir)/Cmd_MakeAccessToken.cpp'; fi`

weave-Cmd_MakeServiceConfig.o: Cmd_MakeServiceConfig.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-Cmd_MakeServiceConfig.o -MD -MP -MF $(DEPDIR)/weave-Cmd_MakeServiceConfig.Tpo -c -o weave-Cmd_MakeServiceConfig.o `test -f 'Cmd_MakeServiceConfig.cpp' || echo '$(srcdir)/'`Cmd_MakeServiceConfig.cpp
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-Cmd_MakeServiceConfig.Tpo $(DEPDIR)/weave-Cmd_MakeServiceConfig.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Cmd_MakeServiceConfig.cpp' object='weave-Cmd_MakeServiceConfig.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-Cmd_MakeServiceConfig.o `test -f 'Cmd_MakeServiceConfig.cpp' || echo '$(srcdir)/'`Cmd_MakeServiceConfig.cpp

weave-Cmd_MakeServiceConfig.obj: Cmd_MakeServiceConfig.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-Cmd_MakeServiceConfig.obj -MD -MP -MF $(DEPDIR)/weave-Cmd_MakeServiceConfig.Tpo -c -o weave-Cmd_MakeServiceConfig.obj `if test -f 'Cmd_MakeServiceConfig.cpp'; then $(CYGPATH_W) 'Cmd_MakeServiceConfig.cpp'; else $(CYGPATH_W) '$(srcdir)/Cmd_MakeServiceConfig.cpp'; fi`
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-Cmd_MakeServiceConfig.Tpo $(DEPDIR)/weave-Cmd_MakeServiceConfig.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Cmd_MakeServiceConfig.cpp' object='weave-Cmd_MakeServiceConfig.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-Cmd_MakeServiceConfig.obj `if test -f 'Cmd_MakeServiceConfig.cpp'; then $(CYGPATH_W) 'Cmd_MakeServiceConfig.cpp'; else $(CYGPATH_W) '$(srcdir)/Cmd_MakeServiceConfig.cpp'; fi`

weave-Cmd_PrintCert.o: Cmd_PrintCert.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-Cmd_PrintCert.o -MD -MP -MF $(DEPDIR)/weave-Cmd_PrintCert.Tpo -c -o weave-Cmd_PrintCert.o `test -f 'Cmd_PrintCert.cpp' || echo '$(srcdir)/'`Cmd_PrintCert.cpp
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-Cmd_PrintCert.Tpo $(DEPDIR)/weave-Cmd_PrintCert.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Cmd_PrintCert.cpp' object='weave-Cmd_PrintCert.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-Cmd_PrintCert.o `test -f 'Cmd_PrintCert.cpp' || echo '$(srcdir)/'`Cmd_PrintCert.cpp

weave-Cmd_PrintCert.obj: Cmd_PrintCert.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-Cmd_PrintCert.obj -MD -MP -MF $(DEPDIR)/weave-Cmd_PrintCert.Tpo -c -o weave-Cmd_PrintCert.obj `if test -f 'Cmd_PrintCert.cpp'; then $(CYGPATH_W) 'Cmd_PrintCert.cpp'; else $(CYGPATH_W) '$(srcdir)/Cmd_PrintCert.cpp'; fi`
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-Cmd_PrintCert.Tpo $(DEPDIR)/weave-Cmd_PrintCert.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Cmd_PrintCert.cpp' object='weave-Cmd_PrintCert.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-Cmd_PrintCert.obj `if test -f 'Cmd_PrintCert.cpp'; then $(CYGPATH_W) 'Cmd_PrintCert.cpp'; else $(CYGPATH_W) '$(srcdir)/Cmd_PrintCert.cpp'; fi`

weave-Cmd_PrintTLV.o: Cmd_PrintTLV.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-Cmd_PrintTLV.o -MD -MP -MF $(DEPDIR)/weave-Cmd_PrintTLV.Tpo -c -o weave-Cmd_PrintTLV.o `test -f 'Cmd_PrintTLV.cpp' || echo '$(srcdir)/'`Cmd_PrintTLV.cpp
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-Cmd_PrintTLV.Tpo $(DEPDIR)/weave-Cmd_PrintTLV.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Cmd_PrintTLV.cpp' object='weave-Cmd_PrintTLV.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-Cmd_PrintTLV.o `test -f 'Cmd_PrintTLV.cpp' || echo '$(srcdir)/'`Cmd_PrintTLV.cpp

weave-Cmd_PrintTLV.obj: Cmd_PrintTLV.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-Cmd_PrintTLV.obj -MD -MP -MF $(DEPDIR)/weave-Cmd_PrintTLV.Tpo -c -o weave-Cmd_PrintTLV.obj `if test -f 'Cmd_PrintTLV.cpp'; then $(CYGPATH_W) 'Cmd_PrintTLV.cpp'; else $(CYGPATH_W) '$(srcdir)/Cmd_PrintTLV.cpp'; fi`
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-Cmd_PrintTLV.Tpo $(DEPDIR)/weave-Cmd_PrintTLV.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Cmd_PrintTLV.cpp' object='weave-Cmd_PrintTLV.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-Cmd_PrintTLV.obj `if test -f 'Cmd_PrintTLV.cpp'; then $(CYGPATH_W) 'Cmd_PrintTLV.cpp'; else $(CYGPATH_W) '$(srcdir)/Cmd_PrintTLV.cpp'; fi`

weave-Cmd_ValidateCert.o: Cmd_ValidateCert.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-Cmd_ValidateCert.o -MD -MP -MF $(DEPDIR)/weave-Cmd_ValidateCert.Tpo -c -o weave-Cmd_ValidateCert.o `test -f 'Cmd_ValidateCert.cpp' || echo '$(srcdir)/'`Cmd_ValidateCert.cpp
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-Cmd_ValidateCert.Tpo $(DEPDIR)/weave-Cmd_ValidateCert.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Cmd_ValidateCert.cpp' object='weave-Cmd_ValidateCert.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-Cmd_ValidateCert.o `test -f 'Cmd_ValidateCert.cpp' || echo '$(srcdir)/'`Cmd_ValidateCert.cpp

weave-Cmd_ValidateCert.obj: Cmd_ValidateCert.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-Cmd_ValidateCert.obj -MD -MP -MF $(DEPDIR)/weave-Cmd_ValidateCert.Tpo -c -o weave-Cmd_ValidateCert.obj `if test -f 'Cmd_ValidateCert.cpp'; then $(CYGPATH_W) 'Cmd_ValidateCert.cpp'; else $(CYGPATH_W) '$(srcdir)/Cmd_ValidateCert.cpp'; fi`
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-Cmd_ValidateCert.Tpo $(DEPDIR)/weave-Cmd_ValidateCert.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Cmd_ValidateCert.cpp' object='weave-Cmd_ValidateCert.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-Cmd_ValidateCert.obj `if test -f 'Cmd_ValidateCert.cpp'; then $(CYGPATH_W) 'Cmd_ValidateCert.cpp'; else $(CYGPATH_W) '$(srcdir)/Cmd_ValidateCert.cpp'; fi`

weave-Cmd_ResignCert.o: Cmd_ResignCert.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-Cmd_ResignCert.o -MD -MP -MF $(DEPDIR)/weave-Cmd_ResignCert.Tpo -c -o weave-Cmd_ResignCert.o `test -f 'Cmd_ResignCert.cpp' || echo '$(srcdir)/'`Cmd_ResignCert.cpp
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-Cmd_ResignCert.Tpo $(DEPDIR)/weave-Cmd_ResignCert.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Cmd_ResignCert.cpp' object='weave-Cmd_ResignCert.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-Cmd_ResignCert.o `test -f 'Cmd_ResignCert.cpp' || echo '$(srcdir)/'`Cmd_ResignCert.cpp

weave-Cmd_ResignCert.obj: Cmd_ResignCert.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-Cmd_ResignCert.obj -MD -MP -MF $(DEPDIR)/weave-Cmd_ResignCert.Tpo -c -o weave-Cmd_ResignCert.obj `if test -f 'Cmd_ResignCert.cpp'; then $(CYGPATH_W) 'Cmd_ResignCert.cpp'; else $(CYGPATH_W) '$(srcdir)/Cmd_ResignCert.cpp'; fi`
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-Cmd_ResignCert.Tpo $(DEPDIR)/weave-Cmd_ResignCert.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Cmd_ResignCert.cpp' object='weave-Cmd_ResignCert.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-Cmd_ResignCert.obj `if test -f 'Cmd_ResignCert.cpp'; then $(CYGPATH_W) 'Cmd_ResignCert.cpp'; else $(CYGPATH_W) '$(srcdir)/Cmd_ResignCert.cpp'; fi`

weave-GeneralUtils.o: GeneralUtils.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-GeneralUtils.o -MD -MP -MF $(DEPDIR)/weave-GeneralUtils.Tpo -c -o weave-GeneralUtils.o `test -f 'GeneralUtils.cpp' || echo '$(srcdir)/'`GeneralUtils.cpp
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-GeneralUtils.Tpo $(DEPDIR)/weave-GeneralUtils.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='GeneralUtils.cpp' object='weave-GeneralUtils.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-GeneralUtils.o `test -f 'GeneralUtils.cpp' || echo '$(srcdir)/'`GeneralUtils.cpp

weave-GeneralUtils.obj: GeneralUtils.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-GeneralUtils.obj -MD -MP -MF $(DEPDIR)/weave-GeneralUtils.Tpo -c -o weave-GeneralUtils.obj `if test -f 'GeneralUtils.cpp'; then $(CYGPATH_W) 'GeneralUtils.cpp'; else $(CYGPATH_W) '$(srcdir)/GeneralUtils.cpp'; fi`
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-GeneralUtils.Tpo $(DEPDIR)/weave-GeneralUtils.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='GeneralUtils.cpp' object='weave-GeneralUtils.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-GeneralUtils.obj `if test -f 'GeneralUtils.cpp'; then $(CYGPATH_W) 'GeneralUtils.cpp'; else $(CYGPATH_W) '$(srcdir)/GeneralUtils.cpp'; fi`

weave-KeyUtils.o: KeyUtils.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-KeyUtils.o -MD -MP -MF $(DEPDIR)/weave-KeyUtils.Tpo -c -o weave-KeyUtils.o `test -f 'KeyUtils.cpp' || echo '$(srcdir)/'`KeyUtils.cpp
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-KeyUtils.Tpo $(DEPDIR)/weave-KeyUtils.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='KeyUtils.cpp' object='weave-KeyUtils.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-KeyUtils.o `test -f 'KeyUtils.cpp' || echo '$(srcdir)/'`KeyUtils.cpp

weave-KeyUtils.obj: KeyUtils.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-KeyUtils.obj -MD -MP -MF $(DEPDIR)/weave-KeyUtils.Tpo -c -o weave-KeyUtils.obj `if test -f 'KeyUtils.cpp'; then $(CYGPATH_W) 'KeyUtils.cpp'; else $(CYGPATH_W) '$(srcdir)/KeyUtils.cpp'; fi`
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-KeyUtils.Tpo $(DEPDIR)/weave-KeyUtils.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='KeyUtils.cpp' object='weave-KeyUtils.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-KeyUtils.obj `if test -f 'KeyUtils.cpp'; then $(CYGPATH_W) 'KeyUtils.cpp'; else $(CYGPATH_W) '$(srcdir)/KeyUtils.cpp'; fi`

weave-weave-tool.o: weave-tool.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-weave-tool.o -MD -MP -MF $(DEPDIR)/weave-weave-tool.Tpo -c -o weave-weave-tool.o `test -f 'weave-tool.cpp' || echo '$(srcdir)/'`weave-tool.cpp
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-weave-tool.Tpo $(DEPDIR)/weave-weave-tool.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='weave-tool.cpp' object='weave-weave-tool.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-weave-tool.o `test -f 'weave-tool.cpp' || echo '$(srcdir)/'`weave-tool.cpp

weave-weave-tool.obj: weave-tool.cpp
@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -MT weave-weave-tool.obj -MD -MP -MF $(DEPDIR)/weave-weave-tool.Tpo -c -o weave-weave-tool.obj `if test -f 'weave-tool.cpp'; then $(CYGPATH_W) 'weave-tool.cpp'; else $(CYGPATH_W) '$(srcdir)/weave-tool.cpp'; fi`
@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/weave-weave-tool.Tpo $(DEPDIR)/weave-weave-tool.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='weave-tool.cpp' object='weave-weave-tool.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(weave_CPPFLAGS) $(CPPFLAGS) $(weave_CXXFLAGS) $(CXXFLAGS) -c -o weave-weave-tool.obj `if test -f 'weave-tool.cpp'; then $(CYGPATH_W) 'weave-tool.cpp'; else $(CYGPATH_W) '$(srcdir)/weave-tool.cpp'; fi`

mostlyclean-libtool:
	-rm -f *.lo

clean-libtool:
	-rm -rf .libs _libs

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
check-am: all-am
check: check-am
all-am: Makefile $(PROGRAMS) $(HEADERS)
installdirs:
	for dir in "$(DESTDIR)$(libexecdir)"; do \
	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
	done
install: 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:

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."
@WEAVE_BUILD_TOOLS_FALSE@uninstall-local:
@WEAVE_BUILD_TOOLS_FALSE@install-exec-local:
clean: clean-am

clean-am: clean-generic clean-libexecPROGRAMS clean-libtool \
	mostlyclean-am

distclean: distclean-am
	-rm -rf ./$(DEPDIR)
	-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
	distclean-tags

dvi: dvi-am

dvi-am:

html: html-am

html-am:

info: info-am

info-am:

install-data-am:

install-dvi: install-dvi-am

install-dvi-am:

install-exec-am: install-exec-local install-libexecPROGRAMS

install-html: install-html-am

install-html-am:

install-info: install-info-am

install-info-am:

install-man:

install-pdf: install-pdf-am

install-pdf-am:

install-ps: install-ps-am

install-ps-am:

installcheck-am:

maintainer-clean: maintainer-clean-am
	-rm -rf ./$(DEPDIR)
	-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic

mostlyclean: mostlyclean-am

mostlyclean-am: mostlyclean-compile mostlyclean-generic \
	mostlyclean-libtool

pdf: pdf-am

pdf-am:

ps: ps-am

ps-am:

uninstall-am: uninstall-libexecPROGRAMS uninstall-local

.MAKE: install-am install-strip

.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
	clean-libexecPROGRAMS clean-libtool cscopelist-am ctags \
	ctags-am distclean distclean-compile distclean-generic \
	distclean-libtool distclean-tags distdir dvi dvi-am html \
	html-am info info-am install install-am install-data \
	install-data-am install-dvi install-dvi-am install-exec \
	install-exec-am install-exec-local install-html \
	install-html-am install-info install-info-am \
	install-libexecPROGRAMS install-man install-pdf install-pdf-am \
	install-ps install-ps-am install-strip installcheck \
	installcheck-am installdirs maintainer-clean \
	maintainer-clean-generic mostlyclean mostlyclean-compile \
	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
	tags tags-am uninstall uninstall-am uninstall-libexecPROGRAMS \
	uninstall-local


include $(abs_top_nlbuild_autotools_dir)/automake/pre.am

@WEAVE_BUILD_TOOLS_TRUE@install-exec-local: install-exec-binLINKS

@WEAVE_BUILD_TOOLS_TRUE@uninstall-local: uninstall-exec-binLINKS

@WEAVE_BUILD_TOOLS_TRUE@install-exec-binLINKS: $(bin_LINKS)
@WEAVE_BUILD_TOOLS_TRUE@	@$(NORMAL_INSTALL)
@WEAVE_BUILD_TOOLS_TRUE@	@list='$(bin_LINKS)'; test -n "$(bindir)" || list=; \
@WEAVE_BUILD_TOOLS_TRUE@	if test -n "$$list"; then \
@WEAVE_BUILD_TOOLS_TRUE@          echo "  MKDIR    $(DESTDIR)$(bindir)"; \
@WEAVE_BUILD_TOOLS_TRUE@	  $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
@WEAVE_BUILD_TOOLS_TRUE@	fi; \
@WEAVE_BUILD_TOOLS_TRUE@	for link in $${list}; do \
@WEAVE_BUILD_TOOLS_TRUE@            echo "  LN       $${link}"; \
@WEAVE_BUILD_TOOLS_TRUE@	    $(LN_S) -f "../`echo ${libexecdir} | sed -e 's,${exec_prefix}/,,g'`/weave-run" "$(DESTDIR)$(bindir)/$${link}"; \
@WEAVE_BUILD_TOOLS_TRUE@        done

@WEAVE_BUILD_TOOLS_TRUE@uninstall-exec-binLINKS: $(bin_LINKS)
@WEAVE_BUILD_TOOLS_TRUE@	@$(NORMAL_UNINSTALL)
@WEAVE_BUILD_TOOLS_TRUE@	@list='$(bin_LINKS)'; test -n "$(bindir)" || exit 0; \
@WEAVE_BUILD_TOOLS_TRUE@	files=`for p in $$list; do echo "$$p"; done | \
@WEAVE_BUILD_TOOLS_TRUE@	       sed -e 's,.*/,,;$(transform)'`; \
@WEAVE_BUILD_TOOLS_TRUE@	dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir)

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:
