#
#    Copyright 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 is the GNU automake template for the @PACKAGE_DESCRIPTION@.
#

include $(abs_top_nlbuild_autotools_dir)/automake/pre.am

lib_LIBRARIES                       = lib@PACKAGE_SHORT_LOWER@.a

lib@PACKAGE_SHORT_LOWER@_a_CPPFLAGS = \
    -I$(top_srcdir)/include           \
    $(NULL)

lib@PACKAGE_SHORT_LOWER@_a_SOURCES  = @PACKAGE_SHORT_LOWER@.c

include_HEADERS                     = \
    @PACKAGE_SHORT_LOWER@.h           \
    $(NULL)

install-headers: install-includeHEADERS

if @PACKAGE_SHORT_UPPER@_BUILD_COVERAGE
CLEANFILES                          = $(wildcard *.gcda *.gcno)
endif # @PACKAGE_SHORT_UPPER@_BUILD_COVERAGE

include $(abs_top_nlbuild_autotools_dir)/automake/post.am
