1AC_INIT([cpuminer], [2.5.0]) 2 3AC_PREREQ([2.59c]) 4AC_CANONICAL_SYSTEM 5AC_CONFIG_SRCDIR([cpu-miner.c]) 6AM_INIT_AUTOMAKE([gnu]) 7AC_CONFIG_HEADERS([cpuminer-config.h]) 8 9dnl Make sure anyone changing configure.ac/Makefile.am has a clue 10AM_MAINTAINER_MODE 11 12dnl Checks for programs 13AC_PROG_CC_C99 14AC_PROG_GCC_TRADITIONAL 15AM_PROG_CC_C_O 16AM_PROG_AS 17AC_PROG_RANLIB 18 19dnl Checks for header files 20AC_HEADER_STDC 21AC_CHECK_HEADERS([sys/endian.h sys/param.h syslog.h]) 22# sys/sysctl.h requires sys/types.h on FreeBSD 23# sys/sysctl.h requires sys/param.h on OpenBSD 24AC_CHECK_HEADERS([sys/sysctl.h], [], [], 25[#include <sys/types.h> 26#ifdef HAVE_SYS_PARAM_H 27#include <sys/param.h> 28#endif 29]) 30 31AC_CHECK_DECLS([be32dec, le32dec, be32enc, le32enc], [], [], 32[AC_INCLUDES_DEFAULT 33#ifdef HAVE_SYS_ENDIAN_H 34#include <sys/endian.h> 35#endif 36]) 37 38AC_FUNC_ALLOCA 39AC_CHECK_FUNCS([getopt_long]) 40 41case $target in 42 i*86-*-*) 43 have_x86=true 44 ;; 45 x86_64-*-*|amd64-*-*) 46 have_x86_64=true 47 ;; 48 arm*-*-*) 49 have_arm=true 50 ;; 51 powerpc*-*-*) 52 have_ppc=true 53 ;; 54esac 55 56PTHREAD_FLAGS="-pthread" 57WS2_LIBS="" 58 59case $target in 60 *-*-mingw*) 61 have_win32=true 62 PTHREAD_FLAGS="" 63 WS2_LIBS="-lws2_32" 64 ;; 65esac 66 67AC_ARG_ENABLE([assembly], 68 AS_HELP_STRING([--disable-assembly], [disable assembly-language routines])) 69if test x$enable_assembly != xno; then 70 AC_DEFINE([USE_ASM], [1], [Define to 1 if assembly routines are wanted.]) 71fi 72 73if test x$enable_assembly != xno -a x$have_x86_64 = xtrue 74then 75 AC_MSG_CHECKING(whether we can compile AVX code) 76 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[asm ("vmovdqa %ymm0, %ymm1");])], 77 AC_DEFINE(USE_AVX, 1, [Define to 1 if AVX assembly is available.]) 78 AC_MSG_RESULT(yes) 79 AC_MSG_CHECKING(whether we can compile XOP code) 80 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[asm ("vprotd \$7, %xmm0, %xmm1");])], 81 AC_DEFINE(USE_XOP, 1, [Define to 1 if XOP assembly is available.]) 82 AC_MSG_RESULT(yes) 83 , 84 AC_MSG_RESULT(no) 85 AC_MSG_WARN([The assembler does not support the XOP instruction set.]) 86 ) 87 AC_MSG_CHECKING(whether we can compile AVX2 code) 88 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[asm ("vpaddd %ymm0, %ymm1, %ymm2");])], 89 AC_DEFINE(USE_AVX2, 1, [Define to 1 if AVX2 assembly is available.]) 90 AC_MSG_RESULT(yes) 91 , 92 AC_MSG_RESULT(no) 93 AC_MSG_WARN([The assembler does not support the AVX2 instruction set.]) 94 ) 95 , 96 AC_MSG_RESULT(no) 97 AC_MSG_WARN([The assembler does not support the AVX instruction set.]) 98 ) 99fi 100 101AC_CHECK_LIB(jansson, json_loads, request_jansson=false, request_jansson=true) 102AC_CHECK_LIB([pthread], [pthread_create], PTHREAD_LIBS="-lpthread", 103 AC_CHECK_LIB([pthreadGC2], [pthread_create], PTHREAD_LIBS="-lpthreadGC2", 104 AC_CHECK_LIB([pthreadGC1], [pthread_create], PTHREAD_LIBS="-lpthreadGC1", 105 AC_CHECK_LIB([pthreadGC], [pthread_create], PTHREAD_LIBS="-lpthreadGC" 106)))) 107 108AM_CONDITIONAL([WANT_JANSSON], [test x$request_jansson = xtrue]) 109AM_CONDITIONAL([HAVE_WINDOWS], [test x$have_win32 = xtrue]) 110AM_CONDITIONAL([USE_ASM], [test x$enable_assembly != xno]) 111AM_CONDITIONAL([ARCH_x86], [test x$have_x86 = xtrue]) 112AM_CONDITIONAL([ARCH_x86_64], [test x$have_x86_64 = xtrue]) 113AM_CONDITIONAL([ARCH_ARM], [test x$have_arm = xtrue]) 114AM_CONDITIONAL([ARCH_PPC], [test x$have_ppc = xtrue]) 115 116if test x$request_jansson = xtrue 117then 118 JANSSON_LIBS="compat/jansson/libjansson.a" 119else 120 JANSSON_LIBS=-ljansson 121fi 122 123LIBCURL_CHECK_CONFIG(, 7.15.2, , 124 [AC_MSG_ERROR([Missing required libcurl >= 7.15.2])]) 125 126AC_SUBST(JANSSON_LIBS) 127AC_SUBST(PTHREAD_FLAGS) 128AC_SUBST(PTHREAD_LIBS) 129AC_SUBST(WS2_LIBS) 130 131AC_CONFIG_FILES([ 132 Makefile 133 compat/Makefile 134 compat/jansson/Makefile 135 ]) 136AC_OUTPUT 137