#
#    Copyright 2016-2018 The nlfaultinjection Authors.
#
#    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 Labs Fault Injection third party directory
#

include $(abs_top_nlbuild_autotools_dir)/automake/pre.am

EXTRA_DIST                        = \
    nlbuild-autotools               \
    $(NULL)
# Always package (e.g. for 'make dist') these subdirectories.

DIST_SUBDIRS                      = \
    $(NULL)

# NLASSERT_SUBDIRS and NLUNIT_TEST_SUBDIRS are not a permanent part of DIST_SUBDIRS
# since we do not ever want to include them in a distribution archive; however, when
# they've been pulled as a 'repo' module, we do want to remove them on invocation of
# the 'distclean' target. Consequently, we conditionally include them in DIST_SUBDIRS
# on invocation of 'distclean-recursive'

distclean-recursive: DIST_SUBDIRS += $(NLASSERT_SUBDIRS) $(NLUNIT_TEST_SUBDIRS)

# Always build (e.g. for 'make all') these subdirectories.
#
# The values of NLASSERT_SUBDIRS and NLUNIT_TEST_SUBDIRS will be populated by 
# configure if --with-nlassert=internal and --with-nlunit_test=internal,
# respectively.

SUBDIRS                           = \
    $(NLASSERT_SUBDIRS)             \
    $(NLUNIT_TEST_SUBDIRS)          \
    $(NULL)

include $(abs_top_nlbuild_autotools_dir)/automake/post.am
