include aminclude.am

## Place generated object files (.o) into the same directory as their source
## files, in order to avoid collisions when non-recursive make is used.
AUTOMAKE_OPTIONS = subdir-objects

## Additional flags to pass to aclocal when it is invoked automatically at
## make time. The ${ACLOCAL_FLAGS} variable is picked up from the environment
## to provide a way for the user to supply additional arguments.
ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4

lib_LTLIBRARIES = libndn-c.la libndn-cpp.la

# "make install" will also install the include headers.
SUBDIRS = include . tests

# Just the C code.
## To regenerate:
## for i in `find src/c -name '*.c' -or -name '*.h'`; do echo "  $i \\"; done
##
## Note that public header files do not need to be included here (handled by include/Makefile.am)
libndn_c_la_SOURCES = \
  src/c/data.h \
  src/c/encoding/binary-xml-data.c \
  src/c/encoding/binary-xml-data.h \
  src/c/encoding/binary-xml-decoder.c \
  src/c/encoding/binary-xml-decoder.h \
  src/c/encoding/binary-xml-element-reader.c \
  src/c/encoding/binary-xml-element-reader.h \
  src/c/encoding/binary-xml-encoder.c \
  src/c/encoding/binary-xml-encoder.h \
  src/c/encoding/binary-xml-forwarding-entry.c \
  src/c/encoding/binary-xml-forwarding-entry.h \
  src/c/encoding/binary-xml-interest.c \
  src/c/encoding/binary-xml-interest.h \
  src/c/encoding/binary-xml-key.c \
  src/c/encoding/binary-xml-key.h \
  src/c/encoding/binary-xml-name.c \
  src/c/encoding/binary-xml-name.h \
  src/c/encoding/binary-xml-publisher-public-key-digest.c \
  src/c/encoding/binary-xml-publisher-public-key-digest.h \
  src/c/encoding/binary-xml-structure-decoder.c \
  src/c/encoding/binary-xml-structure-decoder.h \
  src/c/encoding/binary-xml.h \
  src/c/errors.c \
  src/c/errors.h \
  src/c/forwarding-entry.h \
  src/c/forwarding-flags.c \
  src/c/interest.c \
  src/c/interest.h \
  src/c/key-locator.h \
  src/c/name.c \
  src/c/name.h \
  src/c/publisher-public-key-digest.h \
  src/c/transport/socket-transport.c \
  src/c/transport/socket-transport.h \
  src/c/transport/tcp-transport.h \
  src/c/transport/udp-transport.h \
  src/c/util/blob.h \
  src/c/util/crypto.c \
  src/c/util/crypto.h \
  src/c/util/dynamic-uint8-array.c \
  src/c/util/dynamic-uint8-array.h \
  src/c/util/ndn_memory.c \
  src/c/util/ndn_memory.h \
  src/c/util/ndn_realloc.c \
  src/c/util/ndn_realloc.h \
  src/c/util/time.c \
  src/c/util/time.h

# C++ code and also the C code.
## To regenerate:
## for i in `find src -name '*.cpp' -or -name '*.hpp' -or -name '*.h' -and -not -path 'src/c/*'`; do echo "  $i \\"; done
libndn_cpp_la_SOURCES = $(libndn_c_la_SOURCES) \
  src/common.cpp \
  src/data.cpp \
  src/encoding/binary-xml-decoder.hpp \
  src/encoding/binary-xml-encoder.hpp \
  src/encoding/binary-xml-structure-decoder.hpp \
  src/encoding/binary-xml-wire-format.cpp \
  src/encoding/der/der-exception.cpp \
  src/encoding/der/der-exception.hpp \
  src/encoding/der/der.cpp \
  src/encoding/der/der.hpp \
  src/encoding/der/visitor/certificate-data-visitor.cpp \
  src/encoding/der/visitor/certificate-data-visitor.hpp \
  src/encoding/der/visitor/no-arguments-visitor.cpp \
  src/encoding/der/visitor/no-arguments-visitor.hpp \
  src/encoding/der/visitor/print-visitor.cpp \
  src/encoding/der/visitor/print-visitor.hpp \
  src/encoding/der/visitor/public-key-visitor.cpp \
  src/encoding/der/visitor/public-key-visitor.hpp \
  src/encoding/der/visitor/simple-visitor.cpp \
  src/encoding/der/visitor/simple-visitor.hpp \
  src/encoding/der/visitor/visitor.hpp \
  src/encoding/der/visitor/void-no-arguments-visitor.hpp \
  src/encoding/der/visitor/void-visitor.cpp \
  src/encoding/der/visitor/void-visitor.hpp \
  src/encoding/element-listener.cpp \
  src/encoding/oid.cpp \
  src/encoding/wire-format.cpp \
  src/face.cpp \
  src/forwarding-entry.cpp \
  src/interest.cpp \
  src/key-locator.cpp \
  src/name.cpp \
  src/node.cpp \
  src/publisher-public-key-digest.cpp \
  src/security/certificate/certificate-extension.cpp \
  src/security/certificate/certificate-subject-description.cpp \
  src/security/certificate/certificate.cpp \
  src/security/certificate/identity-certificate.cpp \
  src/security/certificate/public-key.cpp \
  src/security/identity/basic-identity-storage.cpp \
  src/security/identity/identity-manager.cpp \
  src/security/identity/identity-storage.cpp \
  src/security/identity/memory-identity-storage.cpp \
  src/security/identity/memory-private-key-storage.cpp \
  src/security/identity/osx-private-key-storage.cpp \
  src/security/key-chain.cpp \
  src/security/policy/no-verify-policy-manager.cpp \
  src/security/policy/self-verify-policy-manager.cpp \
  src/security/security-exception.cpp \
  src/security/signature/sha256-with-rsa-handler.cpp \
  src/sha256-with-rsa-signature.cpp \
  src/transport/tcp-transport.cpp \
  src/transport/transport.cpp \
  src/transport/udp-transport.cpp \
  src/util/blob-stream.hpp \
  src/util/blob.cpp \
  src/util/changed-event.cpp \
  src/util/changed-event.hpp \
  src/util/dynamic-uint8-vector.cpp \
  src/util/dynamic-uint8-vector.hpp \
  src/util/logging.cpp \
  src/util/logging.hpp

dist_noinst_SCRIPTS = autogen.sh
