summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am117
1 files changed, 117 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am
index c2c0d2b..21346ae 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -38,3 +38,120 @@ libtls_la_SOURCES += compat/ftruncate.c
 libtls_la_SOURCES += compat/pread.c
 libtls_la_SOURCES += compat/pwrite.c
 endif
+
+libtls_la_LIBADD += libcompat.la
+if !HAVE_EXPLICIT_BZERO
+libtls_la_LIBADD += libcompatnoopt.la
+endif
+
+noinst_LTLIBRARIES = libcompat.la
+
+# compatibility functions that need to be built without optimizations
+if !HAVE_EXPLICIT_BZERO
+noinst_LTLIBRARIES += libcompatnoopt.la
+
+libcompatnoopt_la_CFLAGS = -O0
+libcompatnoopt_la_SOURCES =
+
+if HOST_WIN
+libcompatnoopt_la_SOURCES += compat/explicit_bzero_win.c
+else
+libcompatnoopt_la_SOURCES += compat/explicit_bzero.c
+endif
+endif
+
+# other compatibility functions
+libcompat_la_SOURCES =
+libcompat_la_LIBADD = $(PLATFORM_LDADD)
+
+if !HAVE_STRLCPY
+libcompat_la_SOURCES += compat/strlcpy.c
+endif
+
+if !HAVE_STRSEP
+libcompat_la_SOURCES += compat/strsep.c
+endif
+
+if !HAVE_ASPRINTF
+libcompat_la_SOURCES += compat/bsd-asprintf.c
+endif
+
+if !HAVE_FREEZERO
+libcompat_la_SOURCES += compat/freezero.c
+endif
+
+if !HAVE_GETPAGESIZE
+libcompat_la_SOURCES += compat/getpagesize.c
+endif
+
+if !HAVE_GETPROGNAME
+if HOST_LINUX
+libcompat_la_SOURCES += compat/getprogname_linux.c
+else
+if HOST_WIN
+libcompat_la_SOURCES += compat/getprogname_windows.c
+else
+libcompat_la_SOURCES += compat/getprogname_unimpl.c
+endif
+endif
+endif
+
+if !HAVE_TIMEGM
+libcompat_la_SOURCES += compat/timegm.c
+endif
+
+if !HAVE_REALLOCARRAY
+libcompat_la_SOURCES += compat/reallocarray.c
+endif
+
+if !HAVE_TIMINGSAFE_MEMCMP
+libcompat_la_SOURCES += compat/timingsafe_memcmp.c
+endif
+
+if HOST_WIN
+libcompat_la_SOURCES += compat/posix_win.c
+endif
+
+if !HAVE_ARC4RANDOM_BUF
+libcompat_la_SOURCES += compat/arc4random.c
+libcompat_la_SOURCES += compat/arc4random_uniform.c
+
+if !HAVE_GETENTROPY
+if HOST_AIX
+libcompat_la_SOURCES += compat/getentropy_aix.c
+endif
+if HOST_FREEBSD
+libcompat_la_SOURCES += compat/getentropy_freebsd.c
+endif
+if HOST_HPUX
+libcompat_la_SOURCES += compat/getentropy_hpux.c
+endif
+if HOST_LINUX
+libcompat_la_SOURCES += compat/getentropy_linux.c
+endif
+if HOST_NETBSD
+libcompat_la_SOURCES += compat/getentropy_netbsd.c
+endif
+if HOST_DARWIN
+libcompat_la_SOURCES += compat/getentropy_osx.c
+endif
+if HOST_SOLARIS
+libcompat_la_SOURCES += compat/getentropy_solaris.c
+endif
+if HOST_WIN
+libcompat_la_SOURCES += compat/getentropy_win.c
+endif
+endif
+
+endif
+
+noinst_HEADERS += compat/arc4random.h
+noinst_HEADERS += compat/arc4random_aix.h
+noinst_HEADERS += compat/arc4random_freebsd.h
+noinst_HEADERS += compat/arc4random_hpux.h
+noinst_HEADERS += compat/arc4random_linux.h
+noinst_HEADERS += compat/arc4random_netbsd.h
+noinst_HEADERS += compat/arc4random_osx.h
+noinst_HEADERS += compat/arc4random_solaris.h
+noinst_HEADERS += compat/arc4random_win.h
+noinst_HEADERS += compat/chacha_private.h