#
#  Copyright (c) 2016, The OpenThread Authors.
#  All rights reserved.
#
#  Redistribution and use in source and binary forms, with or without
#  modification, are permitted provided that the following conditions are met:
#  1. Redistributions of source code must retain the above copyright
#     notice, this list of conditions and the following disclaimer.
#  2. Redistributions in binary form must reproduce the above copyright
#     notice, this list of conditions and the following disclaimer in the
#     documentation and/or other materials provided with the distribution.
#  3. Neither the name of the copyright holder nor the
#     names of its contributors may be used to endorse or promote products
#     derived from this software without specific prior written permission.
#
#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
#  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
#  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
#  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
#  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
#  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
#  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
#  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
#  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
#  POSSIBILITY OF SUCH DAMAGE.
#

include $(abs_top_nlbuild_autotools_dir)/automake/pre.am

lib_LIBRARIES                              = $(NULL)

if OPENTHREAD_ENABLE_FTD
lib_LIBRARIES                             += libopenthread-ftd.a
endif

if OPENTHREAD_ENABLE_MTD
lib_LIBRARIES                             += libopenthread-mtd.a
endif

if OPENTHREAD_ENABLE_RADIO_ONLY
lib_LIBRARIES                             += libopenthread-radio.a
endif

CPPFLAGS_COMMON                            = \
    -I$(top_srcdir)/include                  \
    $(OPENTHREAD_TARGET_DEFINES)             \
    $(NULL)

libopenthread_radio_a_CPPFLAGS             = \
    $(CPPFLAGS_COMMON)                       \
    -DOPENTHREAD_MTD=0                       \
    -DOPENTHREAD_FTD=0                       \
    -DOPENTHREAD_RADIO=1                     \
    $(NULL)

libopenthread_ftd_a_CPPFLAGS               = \
    $(CPPFLAGS_COMMON)                       \
    -DOPENTHREAD_MTD=0                       \
    -DOPENTHREAD_FTD=1                       \
    -DOPENTHREAD_RADIO=0                     \
    $(NULL)

libopenthread_mtd_a_CPPFLAGS               = \
    $(CPPFLAGS_COMMON)                       \
    -DOPENTHREAD_MTD=1                       \
    -DOPENTHREAD_FTD=0                       \
    -DOPENTHREAD_RADIO=0                     \
    $(NULL)

#------------------------------------------------------
# Note to maintainer/developers about "SOURCES_COMMON"
#
# The traditional method for GNU style Makefile.am files
# is to have IF statements within the Makefile
#
# These IF statements would add (or not add) certain
# source files from the build/library being built.
#
# In general, IDEs do not easily support this.
# Some do, some do not, those that do support it
# often do so in a very different or complex way.
# Bottom line: It is a very mixed bag of results.
#
# Thus we bend to the IDEs, and impose these rules:
#
# Rule #1
#     All code(files) should be compiled
#     Even if it is not used or required
#
#     For example: In the MTD build, some features
#     are disabled and thus in the traditional scheme
#     source files could be excluded SOURCES_COMMON
#     via makefile IF/ELSE/ENDIF constructs.
#
#     This makes it impossibly hard for IDEs.
#     Thus we compile everything.
#
#     And then rely upon Rule #2.
#
# Rule #2
#     Files that are not required, in certain
#     configurations require appropriate wrappers
#     Such as #if/#else/#endif
#
#     The net result is sort of an "empty translation
#     unit"
#

SOURCES_COMMON                             = \
    api/border_router_api.cpp                \
    api/channel_manager_api.cpp              \
    api/channel_monitor_api.cpp              \
    api/child_supervision_api.cpp            \
    api/coap_api.cpp                         \
    api/coap_secure_api.cpp                  \
    api/commissioner_api.cpp                 \
    api/crypto_api.cpp                       \
    api/dataset_api.cpp                      \
    api/dataset_ftd_api.cpp                  \
    api/diags_api.cpp                        \
    api/dns_api.cpp                          \
    api/entropy_api.cpp                      \
    api/heap_api.cpp                         \
    api/icmp6_api.cpp                        \
    api/instance_api.cpp                     \
    api/ip6_api.cpp                          \
    api/jam_detection_api.cpp                \
    api/joiner_api.cpp                       \
    api/link_api.cpp                         \
    api/link_raw_api.cpp                     \
    api/logging_api.cpp                      \
    api/message_api.cpp                      \
    api/netdata_api.cpp                      \
    api/network_time_api.cpp                 \
    api/random_crypto_api.cpp                \
    api/random_noncrypto_api.cpp             \
    api/server_api.cpp                       \
    api/sntp_api.cpp                         \
    api/tasklet_api.cpp                      \
    api/thread_api.cpp                       \
    api/thread_ftd_api.cpp                   \
    api/udp_api.cpp                          \
    coap/coap.cpp                            \
    coap/coap_message.cpp                    \
    coap/coap_secure.cpp                     \
    common/crc16.cpp                         \
    common/instance.cpp                      \
    common/logging.cpp                       \
    common/message.cpp                       \
    common/notifier.cpp                      \
    common/random_manager.cpp                \
    common/settings.cpp                      \
    common/string.cpp                        \
    common/tasklet.cpp                       \
    common/timer.cpp                         \
    common/tlvs.cpp                          \
    common/trickle_timer.cpp                 \
    crypto/aes_ccm.cpp                       \
    crypto/aes_ecb.cpp                       \
    crypto/ecdsa.cpp                         \
    crypto/hmac_sha256.cpp                   \
    crypto/mbedtls.cpp                       \
    crypto/pbkdf2_cmac.cpp                   \
    crypto/sha256.cpp                        \
    diags/factory_diags.cpp                  \
    mac/channel_mask.cpp                     \
    mac/data_poll_handler.cpp                \
    mac/data_poll_sender.cpp                 \
    mac/link_raw.cpp                         \
    mac/mac.cpp                              \
    mac/mac_filter.cpp                       \
    mac/mac_frame.cpp                        \
    mac/mac_types.cpp                        \
    mac/sub_mac.cpp                          \
    mac/sub_mac_callbacks.cpp                \
    meshcop/announce_begin_client.cpp        \
    meshcop/border_agent.cpp                 \
    meshcop/commissioner.cpp                 \
    meshcop/dataset.cpp                      \
    meshcop/dataset_local.cpp                \
    meshcop/dataset_manager.cpp              \
    meshcop/dataset_manager_ftd.cpp          \
    meshcop/dtls.cpp                         \
    meshcop/energy_scan_client.cpp           \
    meshcop/joiner.cpp                       \
    meshcop/joiner_router.cpp                \
    meshcop/leader.cpp                       \
    meshcop/meshcop.cpp                      \
    meshcop/meshcop_tlvs.cpp                 \
    meshcop/panid_query_client.cpp           \
    meshcop/timestamp.cpp                    \
    net/dhcp6_client.cpp                     \
    net/dhcp6_server.cpp                     \
    net/dns_client.cpp                       \
    net/icmp6.cpp                            \
    net/ip6.cpp                              \
    net/ip6_address.cpp                      \
    net/ip6_filter.cpp                       \
    net/ip6_headers.cpp                      \
    net/ip6_mpl.cpp                          \
    net/netif.cpp                            \
    net/sntp_client.cpp                      \
    net/udp6.cpp                             \
    radio/radio_callbacks.cpp                \
    radio/radio_platform.cpp                 \
    thread/address_resolver.cpp              \
    thread/announce_begin_server.cpp         \
    thread/announce_sender.cpp               \
    thread/child_table.cpp                   \
    thread/device_mode.cpp                   \
    thread/energy_scan_server.cpp            \
    thread/indirect_sender.cpp               \
    thread/key_manager.cpp                   \
    thread/link_quality.cpp                  \
    thread/lowpan.cpp                        \
    thread/mesh_forwarder.cpp                \
    thread/mesh_forwarder_ftd.cpp            \
    thread/mesh_forwarder_mtd.cpp            \
    thread/mle.cpp                           \
    thread/mle_router.cpp                    \
    thread/network_data.cpp                  \
    thread/network_data_leader.cpp           \
    thread/network_data_leader_ftd.cpp       \
    thread/network_data_local.cpp            \
    thread/network_diagnostic.cpp            \
    thread/panid_query_server.cpp            \
    thread/router_table.cpp                  \
    thread/src_match_controller.cpp          \
    thread/thread_netif.cpp                  \
    thread/time_sync_service.cpp             \
    thread/topology.cpp                      \
    utils/channel_manager.cpp                \
    utils/channel_monitor.cpp                \
    utils/child_supervision.cpp              \
    utils/heap.cpp                           \
    utils/jam_detector.cpp                   \
    utils/parse_cmdline.cpp                  \
    utils/slaac_address.cpp                  \
    $(NULL)

EXTRA_DIST                                 = \
    common/extension_example.cpp             \
    $(NULL)

libopenthread_radio_a_SOURCES              = \
    api/diags_api.cpp                        \
    api/heap_api.cpp                         \
    api/instance_api.cpp                     \
    api/link_raw_api.cpp                     \
    api/logging_api.cpp                      \
    api/random_noncrypto_api.cpp             \
    api/tasklet_api.cpp                      \
    common/instance.cpp                      \
    common/logging.cpp                       \
    common/random_manager.cpp                \
    common/string.cpp                        \
    common/tasklet.cpp                       \
    common/timer.cpp                         \
    diags/factory_diags.cpp                  \
    mac/link_raw.cpp                         \
    mac/mac_frame.cpp                        \
    mac/mac_types.cpp                        \
    mac/sub_mac.cpp                          \
    mac/sub_mac_callbacks.cpp                \
    radio/radio_callbacks.cpp                \
    radio/radio_platform.cpp                 \
    thread/link_quality.cpp                  \
    utils/parse_cmdline.cpp                  \
    $(NULL)

libopenthread_mtd_a_SOURCES                = \
    $(SOURCES_COMMON)                        \
    $(NULL)

libopenthread_ftd_a_SOURCES                = \
    $(SOURCES_COMMON)                        \
    $(NULL)

if OPENTHREAD_ENABLE_VENDOR_EXTENSION

.INTERMEDIATE: vendor_extension_temp.cpp
vendor_extension_temp.cpp: ${OPENTHREAD_VENDOR_EXTENSION_SOURCE}
	$(AM_V_GEN)cp $< $@

# "nodist_" prefix tells automake not to include in 'make dist'

nodist_libopenthread_ftd_a_SOURCES         = \
    vendor_extension_temp.cpp                \
    $(NULL)

nodist_libopenthread_mtd_a_SOURCES         = \
    vendor_extension_temp.cpp                \
    $(NULL)

nodist_libopenthread_radio_a_SOURCES       = \
    vendor_extension_temp.cpp                \
    $(NULL)

endif # OPENTHREAD_ENABLE_VENDOR_EXTENSION

HEADERS_COMMON                             = \
    openthread-core-config.h                 \
    coap/coap.hpp                            \
    coap/coap_message.hpp                    \
    coap/coap_secure.hpp                     \
    common/code_utils.hpp                    \
    common/crc16.hpp                         \
    common/debug.hpp                         \
    common/encoding.hpp                      \
    common/extension.hpp                     \
    common/instance.hpp                      \
    common/linked_list.hpp                   \
    common/locator.hpp                       \
    common/locator-getters.hpp               \
    common/logging.hpp                       \
    common/message.hpp                       \
    common/new.hpp                           \
    common/notifier.hpp                      \
    common/random.hpp                        \
    common/random_manager.hpp                \
    common/settings.hpp                      \
    common/string.hpp                        \
    common/tasklet.hpp                       \
    common/time.hpp                          \
    common/timer.hpp                         \
    common/tlvs.hpp                          \
    common/trickle_timer.hpp                 \
    config/announce_sender.h                 \
    config/border_router.h                   \
    config/channel_manager.h                 \
    config/channel_monitor.h                 \
    config/child_supervision.h               \
    config/coap.h                            \
    config/commissioner.h                    \
    config/dhcp6_client.h                    \
    config/dhcp6_server.h                    \
    config/diag.h                            \
    config/dns_client.h                      \
    config/ip6.h                             \
    config/joiner.h                          \
    config/link_quality.h                    \
    config/link_raw.h                        \
    config/logging.h                         \
    config/mac.h                             \
    config/mle.h                             \
    config/openthread-core-config-check.h    \
    config/openthread-core-default-config.h  \
    config/parent_search.h                   \
    config/platform.h                        \
    config/sntp_client.h                     \
    config/time_sync.h                       \
    config/tmf.h                             \
    crypto/aes_ccm.hpp                       \
    crypto/aes_ecb.hpp                       \
    crypto/ecdsa.hpp                         \
    crypto/hmac_sha256.hpp                   \
    crypto/mbedtls.hpp                       \
    crypto/pbkdf2_cmac.h                     \
    crypto/sha256.hpp                        \
    diags/factory_diags.hpp                  \
    mac/channel_mask.hpp                     \
    mac/data_poll_handler.hpp                \
    mac/data_poll_sender.hpp                 \
    mac/link_raw.hpp                         \
    mac/mac.hpp                              \
    mac/mac_filter.hpp                       \
    mac/mac_frame.hpp                        \
    mac/mac_types.hpp                        \
    mac/sub_mac.hpp                          \
    meshcop/announce_begin_client.hpp        \
    meshcop/border_agent.hpp                 \
    meshcop/commissioner.hpp                 \
    meshcop/dataset.hpp                      \
    meshcop/dataset_local.hpp                \
    meshcop/dataset_manager.hpp              \
    meshcop/dtls.hpp                         \
    meshcop/energy_scan_client.hpp           \
    meshcop/joiner.hpp                       \
    meshcop/joiner_router.hpp                \
    meshcop/leader.hpp                       \
    meshcop/meshcop.hpp                      \
    meshcop/meshcop_tlvs.hpp                 \
    meshcop/panid_query_client.hpp           \
    meshcop/timestamp.hpp                    \
    net/dhcp6.hpp                            \
    net/dhcp6_client.hpp                     \
    net/dhcp6_server.hpp                     \
    net/dns_client.hpp                       \
    net/dns_headers.hpp                      \
    net/icmp6.hpp                            \
    net/ip6.hpp                              \
    net/ip6_address.hpp                      \
    net/ip6_filter.hpp                       \
    net/ip6_headers.hpp                      \
    net/ip6_mpl.hpp                          \
    net/netif.hpp                            \
    net/sntp_client.hpp                      \
    net/socket.hpp                           \
    net/tcp.hpp                              \
    net/udp6.hpp                             \
    radio/radio.hpp                          \
    thread/address_resolver.hpp              \
    thread/announce_begin_server.hpp         \
    thread/announce_sender.hpp               \
    thread/child_table.hpp                   \
    thread/device_mode.hpp                   \
    thread/energy_scan_server.hpp            \
    thread/indirect_sender.hpp               \
    thread/indirect_sender_frame_context.hpp \
    thread/key_manager.hpp                   \
    thread/link_quality.hpp                  \
    thread/lowpan.hpp                        \
    thread/mesh_forwarder.hpp                \
    thread/mle.hpp                           \
    thread/mle_constants.hpp                 \
    thread/mle_router.hpp                    \
    thread/mle_router_ftd.hpp                \
    thread/mle_router_mtd.hpp                \
    thread/mle_tlvs.hpp                      \
    thread/network_data.hpp                  \
    thread/network_data_leader.hpp           \
    thread/network_data_leader_ftd.hpp       \
    thread/network_data_local.hpp            \
    thread/network_data_tlvs.hpp             \
    thread/network_diagnostic.hpp            \
    thread/network_diagnostic_tlvs.hpp       \
    thread/panid_query_server.hpp            \
    thread/router_table.hpp                  \
    thread/src_match_controller.hpp          \
    thread/thread_netif.hpp                  \
    thread/thread_tlvs.hpp                   \
    thread/thread_uri_paths.hpp              \
    thread/time_sync_service.hpp             \
    thread/topology.hpp                      \
    utils/channel_manager.hpp                \
    utils/channel_monitor.hpp                \
    utils/child_supervision.hpp              \
    utils/heap.hpp                           \
    utils/jam_detector.hpp                   \
    utils/parse_cmdline.hpp                  \
    utils/slaac_address.hpp                  \
    utils/static_assert.hpp                  \
    $(NULL)

noinst_HEADERS                             = \
    $(HEADERS_COMMON)                        \
    $(NULL)

PRETTY_FILES                               = \
    $(HEADERS_COMMON)                        \
    $(SOURCES_COMMON)                        \
    $(EXTRA_DIST)                            \
    $(NULL)

if OPENTHREAD_BUILD_COVERAGE
Dash       = -
CLEANFILES = $(shell find $(top_builddir)/src/core $(Dash)name "*.gcda" $(Dash)o $(Dash)name "*.gcno")
endif

include $(abs_top_nlbuild_autotools_dir)/automake/post.am
