blob: 68d34ff84d3b4a87398d6328b886caab601ff7d8 [file] [log] [blame]
#
# 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
# test applications
#
include $(abs_top_nlbuild_autotools_dir)/automake/pre.am
LOG_DRIVER=$(abs_srcdir)/weave-parallel-test-engine
EXTRA_DIST = \
corpus/FuzzCertificateConversion/test-dev-18B430000000000A-cert-256.pem \
corpus/FuzzCertificateConversion/test-dev-18B430000000000A-cert-256.weave \
corpus/FuzzCertificateConversion/test-dev-18B430000000000A-cert.pem \
corpus/FuzzCertificateConversion/test-dev-18B430000000000A-cert.weave \
corpus/FuzzCertificateConversion/test-dev-18B430000000000A-key.pem \
corpus/FuzzCertificateConversion/test-dev-18B430000000000A-key.weave \
corpus/PASEInitiatorStep1/InitiatorStep1_Config1 \
corpus/PASEInitiatorStep2/InitiatorStep2_Config1 \
corpus/PASEKeyConfirm/KeyConfirm_Config1 \
corpus/PASEKeyConfirm/ResponderKeyConfirm \
corpus/PASEResponderStep1/ResponderStep1_Config1 \
corpus/PASEResponderStep2/ResponderStep2_Config1 \
$(NULL)
#
# Local headers to build against and distribute but not to install
# since they are not part of the Weave SDK public API.
#
noinst_HEADERS = \
FuzzUtils.h \
$(NULL)
if WEAVE_BUILD_TESTS
# A non-installed common library that may be used for all test
# applications in this directory.
#
# This will NOT be part of the externally-consumable binary SDK.
noinst_LIBRARIES = \
libFuzzUtil.a \
$(NULL)
MAYBE_FUZZ = \
$(NULL)
if WEAVE_FUZZING_ENABLED
MAYBE_FUZZ += -g -O1 -fsanitize=fuzzer,address
endif
# C preprocessor option flags that will apply to all compiled objects in this
# makefile.
AM_CPPFLAGS = \
$(MAYBE_FUZZ) \
-I$(top_srcdir)/src/include \
-I$(top_srcdir)/src/test-apps \
-I$(top_srcdir)/tools/weave/ \
$(LWIP_CPPFLAGS) \
$(SOCKETS_CPPFLAGS) \
$(PTHREAD_CFLAGS) \
$(NULL)
libFuzzUtil_a_SOURCES = \
FuzzUtils.cpp \
$(NULL)
TEST_COMMON_LDADD = \
$(top_builddir)/src/test-apps/libWeaveTestCommon.a \
$(NULL)
WEAVE_LDADD = \
$(top_builddir)/src/lib/libWeave.a \
$(NULL)
if CONFIG_BLE_PLATFORM_BLUEZ
BLE_LDADD = \
$(top_builddir)/src/platform/ble/bluez/libWoBluez.a \
$(BLUEZ_LDFLAGS) \
@BLUEZ_LIBS@ @GLIB_LIBS@ @DBUS_LIBS@ -ldl -lrt \
$(NULL)
else
BLE_LDADD = \
$(NULL)
endif #CONFIG_BLE_PLATFORM_BLUEZ
COMMON_LDADD = \
$(COMMON_LDFLAGS) \
$(WEAVE_LDADD) \
$(LWIP_LDFLAGS) $(LWIP_LIBS) \
$(SOCKETS_LDFLAGS) $(SOCKETS_LIBS) \
$(PTHREAD_CFLAGS) $(PTHREAD_LIBS) \
$(BLE_LDADD) \
$(NULL)
#
# Test applications that should be run when the 'check' target is run.
#
# These will NOT be part of the externally-consumable binary SDK.
check_PROGRAMS = \
FuzzPASEInitiatorStep1 \
FuzzPASEResponderStep1 \
FuzzPASEResponderStep2 \
FuzzPASEInitiatorStep2 \
FuzzPASEKeyConfirm \
FuzzCertificateConversion \
$(NULL)
# Test applications that should be built but not installed and should
# always be built to ensure overall "build sanity".
#
# These will NOT be part of the externally-consumable binary SDK.
noinst_PROGRAMS = \
FuzzPASEInitiatorStep1 \
FuzzPASEResponderStep1 \
FuzzPASEResponderStep2 \
FuzzPASEInitiatorStep2 \
FuzzPASEKeyConfirm \
FuzzCertificateConversion \
$(NULL)
# The additional environment variables and their values that will be
# made available to all programs and scripts in TESTS.
TESTS_ENVIRONMENT = \
export \
CMP='$(CMP)' \
RM='$(RM)' \
abs_builddir='$(abs_builddir)' \
abs_srcdir='$(abs_srcdir)' \
abs_top_builddir='$(abs_top_builddir)' \
abs_top_srcdir='$(abs_top_srcdir)' \
builddir='$(builddir)' \
srcdir='$(srcdir)' \
top_builddir='$(top_builddir)' \
top_srcdir='$(top_srcdir)' \
WEAVE_SYSTEM_CONFIG_USE_LWIP='$(WEAVE_SYSTEM_CONFIG_USE_LWIP)' \
$(NULL)
# Source, compiler, and linker options for test programs.
FuzzPASEInitiatorStep1_SOURCES = FuzzPASEInitiatorStep1.cpp
FuzzPASEInitiatorStep1_LDFLAGS = $(AM_CPPFLAGS)
FuzzPASEInitiatorStep1_LDADD = libFuzzUtil.a $(TEST_COMMON_LDADD) $(COMMON_LDADD)
FuzzPASEResponderStep1_SOURCES = FuzzPASEResponderStep1.cpp
FuzzPASEResponderStep1_LDFLAGS = $(AM_CPPFLAGS)
FuzzPASEResponderStep1_LDADD = libFuzzUtil.a $(TEST_COMMON_LDADD) $(COMMON_LDADD)
FuzzPASEResponderStep2_SOURCES = FuzzPASEResponderStep2.cpp
FuzzPASEResponderStep2_LDFLAGS = $(AM_CPPFLAGS)
FuzzPASEResponderStep2_LDADD = libFuzzUtil.a $(TEST_COMMON_LDADD) $(COMMON_LDADD)
FuzzPASEInitiatorStep2_SOURCES = FuzzPASEInitiatorStep2.cpp
FuzzPASEInitiatorStep2_LDFLAGS = $(AM_CPPFLAGS)
FuzzPASEInitiatorStep2_LDADD = libFuzzUtil.a $(TEST_COMMON_LDADD) $(COMMON_LDADD)
FuzzPASEKeyConfirm_SOURCES = FuzzPASEKeyConfirm.cpp
FuzzPASEKeyConfirm_LDFLAGS = $(AM_CPPFLAGS)
FuzzPASEKeyConfirm_LDADD = libFuzzUtil.a $(TEST_COMMON_LDADD) $(COMMON_LDADD)
FuzzCertificateConversion_SOURCES = FuzzCertificateConversion.cpp
FuzzCertificateConversion_LDFLAGS = $(AM_CPPFLAGS)
FuzzCertificateConversion_LDADD = libFuzzUtil.a $(top_builddir)/src/tools/weave/libWeaveTool.a $(TEST_COMMON_LDADD) $(COMMON_LDADD)
# Targets and commands for installing and uninstalling the bin_LINKS
# programs as symbolic links which are trampolined through an
# execution script.
install-exec-local: install-exec-binLINKS
uninstall-local: uninstall-exec-binLINKS
install-exec-binLINKS: $(bin_LINKS)
@$(NORMAL_INSTALL)
@list='$(bin_LINKS)'; test -n "$(bindir)" || list=; \
if test -n "$$list"; then \
echo " MKDIR $(DESTDIR)$(bindir)"; \
$(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
fi; \
for link in $${list}; do \
echo " LN $${link}"; \
$(LN_S) -f "../`echo ${libexecdir} | sed -e 's,${exec_prefix}/,,g'`/weave-run" "$(DESTDIR)$(bindir)/$${link}"; \
done
uninstall-exec-binLINKS: $(bin_LINKS)
@$(NORMAL_UNINSTALL)
@list='$(bin_LINKS)'; test -n "$(bindir)" || exit 0; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 's,.*/,,;$(transform)'`; \
dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir)
endif # WEAVE_BUILD_TESTS
include $(abs_top_nlbuild_autotools_dir)/automake/post.am