# Copyright (c) 2014-2015 Brent Cook # # Permission to use, copy, modify, and distribute this software for any # purpose with or without fee is hereby granted, provided that the above # copyright notice and this permission notice appear in all copies. # # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. AC_INIT([libressl], m4_esyscmd([tr -d '\n' < VERSION])) AC_SUBST([LIBCRYPTO_VERSION], m4_esyscmd([tr -d '\n' < crypto/VERSION])) AC_SUBST([LIBSSL_VERSION], m4_esyscmd([tr -d '\n' < ssl/VERSION])) AC_SUBST([LIBTLS_VERSION], m4_esyscmd([tr -d '\n' < tls/VERSION])) AC_CANONICAL_HOST AM_INIT_AUTOMAKE([subdir-objects foreign]) AC_CONFIG_MACRO_DIR([m4]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) # This must be saved before AC_PROG_CC USER_CFLAGS="$CFLAGS" AC_PROG_CC([cc gcc]) AC_PROG_CC_STDC AM_PROG_CC_C_O AC_PROG_LIBTOOL LT_INIT CHECK_OS_OPTIONS CHECK_C_HARDENING_OPTIONS DISABLE_AS_EXECUTABLE_STACK AM_PROG_AS DISABLE_COMPILER_WARNINGS # Check if the certhash command should be built AC_CHECK_FUNCS([symlink]) AM_CONDITIONAL([BUILD_CERTHASH], [test "x$ac_cv_func_symlink" = xyes]) # Check if funopen exists AC_CHECK_FUNC([funopen]) CHECK_LIBC_COMPAT CHECK_SYSCALL_COMPAT CHECK_CRYPTO_COMPAT CHECK_VA_COPY CHECK_B64_NTOP AC_ARG_WITH([openssldir], AS_HELP_STRING([--with-openssldir], [Set the default openssl directory]), OPENSSLDIR="$withval" AC_SUBST(OPENSSLDIR) ) AM_CONDITIONAL([OPENSSLDIR_DEFINED], [test x$with_openssldir != x]) AC_ARG_ENABLE([extratests], AS_HELP_STRING([--enable-extratests], [Enable extra tests that may be unreliable on some platforms])) AM_CONDITIONAL([ENABLE_EXTRATESTS], [test "x$enable_extratests" = xyes]) AC_ARG_ENABLE([tests], [AS_HELP_STRING([--disable-tests], [Disable tests @<:@default=enabled@:>@])], [ if ! test "x${enable_tests}" = "xyes"; then enable_tests="no" fi], [enable_tests="yes"]) AM_CONDITIONAL([ENABLE_TESTS], [test "x$enable_tests" = xyes]) # Add CPU-specific alignment flags old_cflags=$CFLAGS CFLAGS="$CFLAGS -I$srcdir/include" AC_MSG_CHECKING([if BSWAP4 builds without __STRICT_ALIGNMENT]) AC_TRY_COMPILE([#include "$srcdir/crypto/modes/modes_lcl.h"], [int a = 0; BSWAP4(a);], AC_MSG_RESULT([yes]) BSWAP4=yes, AC_MSG_RESULT([no]) BSWAP4=no) CFLAGS="$old_cflags" AS_CASE([$host_cpu], [*sparc*], [CPPFLAGS="$CPPFLAGS -D__STRICT_ALIGNMENT"], [*arm*], [host_cpu=arm], [*amd64*], [host_cpu=x86_64 HOSTARCH=intel], [i?86], [HOSTARCH=intel], [x86_64], [HOSTARCH=intel] ) AS_IF([test "x$BSWAP4" = "xyes" -a "$host_cpu" = "arm" ],,CPPFLAGS="$CPPFLAGS -D__STRICT_ALIGNMENT") AM_CONDITIONAL([HOST_CPU_IS_INTEL], [test "x$HOSTARCH" = "xintel"]) AC_MSG_CHECKING([if .gnu.warning accepts long strings]) AC_LINK_IFELSE([AC_LANG_SOURCE([[ extern void SSLv3_method(); __asm__(".section .gnu.warning.SSLv3_method\n\t.ascii \"SSLv3_method is insecure\"\n\t.text"); int main() {return 0;} ]])], [ AC_DEFINE(HAS_GNU_WARNING_LONG, 1, [Define if .gnu.warning accepts long strings.]) AC_MSG_RESULT(yes) ], [ AC_MSG_RESULT(no) ]) AC_ARG_ENABLE([asm], AS_HELP_STRING([--disable-asm], [Disable assembly])) AM_CONDITIONAL([OPENSSL_NO_ASM], [test "x$enable_asm" = "xno"]) # Conditionally enable assembly by default AM_CONDITIONAL([HOST_ASM_ELF_ARM], [test "x$HOST_ABI" = "xelf" -a "$host_cpu" = "arm" -a "x$enable_asm" != "xno"]) AM_CONDITIONAL([HOST_ASM_ELF_X86_64], [test "x$HOST_ABI" = "xelf" -a "$host_cpu" = "x86_64" -a "x$enable_asm" != "xno"]) AM_CONDITIONAL([HOST_ASM_MACOSX_X86_64], [test "x$HOST_ABI" = "xmacosx" -a "$host_cpu" = "x86_64" -a "x$enable_asm" != "xno"]) AM_CONDITIONAL([HOST_ASM_MASM_X86_64], [test "x$HOST_ABI" = "xmasm" -a "$host_cpu" = "x86_64" -a "x$enable_asm" != "xno"]) AM_CONDITIONAL([HOST_ASM_MINGW64_X86_64], [test "x$HOST_ABI" = "xmingw64" -a "$host_cpu" = "x86_64" -a "x$enable_asm" != "xno"]) # Check if time_t is sized correctly AC_CHECK_SIZEOF([time_t], [time.h]) AC_CONFIG_FILES([ Makefile include/Makefile include/openssl/Makefile crypto/Makefile ssl/Makefile tls/Makefile tests/Makefile apps/Makefile apps/ocspcheck/Makefile apps/openssl/Makefile apps/nc/Makefile man/Makefile libcrypto.pc libssl.pc libtls.pc openssl.pc ]) AM_CONDITIONAL([SMALL_TIME_T], [test "$ac_cv_sizeof_time_t" = "4"]) if test "$ac_cv_sizeof_time_t" = "4"; then AC_DEFINE([SMALL_TIME_T]) echo " ** Warning, this system is unable to represent times past 2038" echo " ** It will behave incorrectly when handling valid RFC5280 dates" if test "$host_os" = "mingw32" ; then echo " **" echo " ** You can solve this by adjusting the build flags in your" echo " ** mingw-w64 toolchain. Refer to README.windows for details." fi fi AC_REQUIRE_AUX_FILE([tap-driver.sh]) AC_OUTPUT