
noinst_LIBRARIES += \
	src/common/libor.a \
	src/common/libor-ctime.a \
	src/common/libor-crypto.a \
	src/common/libor-event.a

if UNITTESTS_ENABLED
noinst_LIBRARIES += \
	src/common/libor-testing.a \
	src/common/libor-ctime-testing.a \
	src/common/libor-crypto-testing.a \
	src/common/libor-event-testing.a
endif

EXTRA_DIST += src/common/Makefile.nmake

#CFLAGS  = -Wall -Wpointer-arith -O2
AM_CPPFLAGS += -I$(srcdir)/src/common -Isrc/common -I$(srcdir)/src/ext/trunnel -I$(srcdir)/src/trunnel

if USE_OPENBSD_MALLOC
libor_extra_source=src/ext/OpenBSD_malloc_Linux.c
else
libor_extra_source=
endif

src_common_libcurve25519_donna_a_CFLAGS=

if BUILD_CURVE25519_DONNA
src_common_libcurve25519_donna_a_SOURCES=\
	src/ext/curve25519_donna/curve25519-donna.c
# See bug 13538 -- this code is known to have signed overflow issues.
src_common_libcurve25519_donna_a_CFLAGS+=\
	@F_OMIT_FRAME_POINTER@ @CFLAGS_CONSTTIME@
noinst_LIBRARIES+=src/common/libcurve25519_donna.a
LIBDONNA=src/common/libcurve25519_donna.a
else
if BUILD_CURVE25519_DONNA_C64
src_common_libcurve25519_donna_a_CFLAGS+=@CFLAGS_CONSTTIME@
src_common_libcurve25519_donna_a_SOURCES=\
	src/ext/curve25519_donna/curve25519-donna-c64.c
noinst_LIBRARIES+=src/common/libcurve25519_donna.a
LIBDONNA=src/common/libcurve25519_donna.a
else
LIBDONNA=
endif
endif

LIBDONNA += $(LIBED25519_REF10)
LIBDONNA += $(LIBED25519_DONNA)

if THREADS_PTHREADS
threads_impl_source=src/common/compat_pthreads.c
endif
if THREADS_WIN32
threads_impl_source=src/common/compat_winthreads.c
endif

if BUILD_READPASSPHRASE_C
readpassphrase_source=src/ext/readpassphrase.c
else
readpassphrase_source=
endif

if ADD_MULODI4
mulodi4_source=src/ext/mulodi/mulodi4.c
else
mulodi4_source=
endif

LIBOR_CTIME_A_SRC = \
   $(mulodi4_source) \
   src/ext/csiphash.c   \
   src/common/di_ops.c

src_common_libor_ctime_a_SOURCES = $(LIBOR_CTIME_A_SRC)
if UNITTESTS_ENABLED
src_common_libor_ctime_testing_a_SOURCES = $(LIBOR_CTIME_A_SRC)
else
src_common_libor_ctime_testing_a_SOURCES =
endif
src_common_libor_ctime_a_CFLAGS = @CFLAGS_CONSTTIME@
src_common_libor_ctime_testing_a_CFLAGS = @CFLAGS_CONSTTIME@ $(TEST_CFLAGS)

LIBOR_A_SRC = \
  src/common/address.c					\
  src/common/address_set.c				\
  src/common/backtrace.c				\
  src/common/buffers.c					\
  src/common/compat.c					\
  src/common/compat_threads.c				\
  src/common/compat_time.c				\
  src/common/confline.c					\
  src/common/container.c				\
  src/common/log.c					\
  src/common/memarea.c					\
  src/common/pubsub.c					\
  src/common/util.c					\
  src/common/util_bug.c					\
  src/common/util_format.c				\
  src/common/util_process.c				\
  src/common/sandbox.c					\
  src/common/storagedir.c				\
  src/common/token_bucket.c				\
  src/common/workqueue.c				\
  $(libor_extra_source)					\
  $(threads_impl_source)				\
  $(readpassphrase_source)

src/common/src_common_libor_testing_a-log.$(OBJEXT) \
  src/common/log.$(OBJEXT): micro-revision.i

LIBOR_CRYPTO_A_SRC = \
  src/common/aes.c		\
  src/common/buffers_tls.c	\
  src/common/compress.c	\
  src/common/compress_lzma.c	\
  src/common/compress_none.c	\
  src/common/compress_zlib.c	\
  src/common/compress_zstd.c	\
  src/common/crypto.c		\
  src/common/crypto_digest.c     \
  src/common/crypto_format.c	\
  src/common/crypto_openssl_mgt.c    \
  src/common/crypto_pwbox.c     \
  src/common/crypto_rand.c     \
  src/common/crypto_rsa.c     \
  src/common/crypto_s2k.c	\
  src/common/crypto_util.c	\
  src/common/tortls.c		\
  src/common/crypto_curve25519.c \
  src/common/crypto_ed25519.c

LIBOR_EVENT_A_SRC = \
	src/common/compat_libevent.c \
	src/common/procmon.c         \
	src/common/timers.c          \
	src/ext/timeouts/timeout.c

src_common_libor_a_SOURCES = $(LIBOR_A_SRC)
src_common_libor_crypto_a_SOURCES = $(LIBOR_CRYPTO_A_SRC)
src_common_libor_event_a_SOURCES = $(LIBOR_EVENT_A_SRC)

if UNITTESTS_ENABLED
src_common_libor_testing_a_SOURCES = $(LIBOR_A_SRC)
src_common_libor_crypto_testing_a_SOURCES = $(LIBOR_CRYPTO_A_SRC)
src_common_libor_event_testing_a_SOURCES = $(LIBOR_EVENT_A_SRC)
else
src_common_libor_testing_a_SOURCES =
src_common_libor_crypto_testing_a_SOURCES =
src_common_libor_event_testing_a_SOURCES =
endif

src_common_libor_testing_a_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_CPPFLAGS)
src_common_libor_crypto_testing_a_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_CPPFLAGS)
src_common_libor_event_testing_a_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_CPPFLAGS)
src_common_libor_testing_a_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
src_common_libor_crypto_testing_a_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
src_common_libor_event_testing_a_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)

COMMONHEADERS = \
  src/common/address.h				\
  src/common/address_set.h			\
  src/common/backtrace.h			\
  src/common/buffers.h				\
  src/common/buffers_tls.h			\
  src/common/aes.h				\
  src/common/ciphers.inc			\
  src/common/compat.h				\
  src/common/compat_libevent.h			\
  src/common/compat_openssl.h			\
  src/common/compat_threads.h			\
  src/common/compat_time.h			\
  src/common/compress.h				\
  src/common/compress_lzma.h			\
  src/common/compress_none.h			\
  src/common/compress_zlib.h			\
  src/common/compress_zstd.h			\
  src/common/confline.h				\
  src/common/container.h			\
  src/common/crypto.h				\
  src/common/crypto_digest.h            \
  src/common/crypto_curve25519.h		\
  src/common/crypto_ed25519.h			\
  src/common/crypto_format.h			\
  src/common/crypto_openssl_mgt.h         \
  src/common/crypto_pwbox.h			\
  src/common/crypto_rand.h          \
  src/common/crypto_rsa.h           \
  src/common/crypto_s2k.h			\
  src/common/crypto_util.h			\
  src/common/di_ops.h				\
  src/common/handles.h				\
  src/common/memarea.h				\
  src/common/linux_syscalls.inc			\
  src/common/procmon.h				\
  src/common/pubsub.h				\
  src/common/sandbox.h				\
  src/common/storagedir.h			\
  src/common/testsupport.h			\
  src/common/timers.h				\
  src/common/token_bucket.h			\
  src/common/torint.h				\
  src/common/torlog.h				\
  src/common/tortls.h				\
  src/common/util.h				\
  src/common/util_bug.h				\
  src/common/util_format.h			\
  src/common/util_process.h			\
  src/common/workqueue.h

noinst_HEADERS+= $(COMMONHEADERS)

