#
#    Copyright 2014-2016 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 defines automake variables common to all other
#      automake headers and files for silent-rules-style (V=[0|1]) build
#      verbosity output.
#

AM_V_LN_S       = $(am__v_LN_S_$(V))
am__v_LN_S_     = $(am__v_LN_S_$(AM_DEFAULT_VERBOSITY))
am__v_LN_S_0    = @echo "  LN       $(@)";
am__v_LN_S_1    = 

AM_V_MKDIR_P    = $(am__v_MKDIR_P_$(V))
am__v_MKDIR_P_  = $(am__v_MKDIR_P_$(AM_DEFAULT_VERBOSITY))
am__v_MKDIR_P_0 = @echo "  MKDIR    $(@)";
am__v_MKDIR_P_1 = 



