]>
Commit | Line | Data |
---|---|---|
052fd5ba | 1 | AC_INIT([cpuminer-multi], [1.3.2]) |
b089cc9f LJ |
2 | |
3 | AC_PREREQ([2.59c]) | |
4 | AC_CANONICAL_SYSTEM | |
5 | AC_CONFIG_SRCDIR([cpu-miner.c]) | |
b089cc9f | 6 | AC_CONFIG_HEADERS([cpuminer-config.h]) |
3967e063 | 7 | AC_CONFIG_MACRO_DIR([m4]) |
8 | ||
9 | AM_INIT_AUTOMAKE([foreign subdir-objects]) | |
b089cc9f LJ |
10 | |
11 | dnl Make sure anyone changing configure.ac/Makefile.am has a clue | |
12 | AM_MAINTAINER_MODE | |
13 | ||
14 | dnl Checks for programs | |
15 | AC_PROG_CC_C99 | |
16 | AC_PROG_GCC_TRADITIONAL | |
17 | AM_PROG_CC_C_O | |
18 | AM_PROG_AS | |
19 | AC_PROG_RANLIB | |
78a3ef92 | 20 | AC_PROG_CXX |
b089cc9f LJ |
21 | |
22 | dnl Checks for header files | |
23 | AC_HEADER_STDC | |
24 | AC_CHECK_HEADERS([sys/endian.h sys/param.h syslog.h]) | |
25 | # sys/sysctl.h requires sys/types.h on FreeBSD | |
26 | # sys/sysctl.h requires sys/param.h on OpenBSD | |
27 | AC_CHECK_HEADERS([sys/sysctl.h], [], [], | |
28 | [#include <sys/types.h> | |
29 | #ifdef HAVE_SYS_PARAM_H | |
30 | #include <sys/param.h> | |
31 | #endif | |
32 | ]) | |
33 | ||
7e4b0eac | 34 | AC_CHECK_DECLS([be32dec, le32dec, be32enc, le32enc, le16dec, le16enc], [], [], |
b089cc9f LJ |
35 | [AC_INCLUDES_DEFAULT |
36 | #ifdef HAVE_SYS_ENDIAN_H | |
37 | #include <sys/endian.h> | |
38 | #endif | |
39 | ]) | |
40 | ||
41 | AC_FUNC_ALLOCA | |
42 | AC_CHECK_FUNCS([getopt_long]) | |
43 | ||
3967e063 | 44 | MINGW_TARGET=`$CC -dumpmachine 2>&1` |
45 | case $MINGW_TARGET in | |
46 | arm*-*-*) | |
47 | have_arm=true | |
48 | ;; | |
49 | i*86-*-mingw*) | |
b089cc9f | 50 | have_x86=true |
3967e063 | 51 | have_win32=true |
52 | CFLAGS="-Icompat/pthreads $CFLAGS" | |
53 | PTHREAD_LDFLAGS="-Lcompat/pthreads/x86" | |
2cf78c99 | 54 | WS2_LIBS="-lws2_32" |
b089cc9f | 55 | ;; |
3967e063 | 56 | x86_64-*-mingw*|amd64-*-mingw*) |
b089cc9f | 57 | have_x86_64=true |
3967e063 | 58 | have_win32=true |
59 | CFLAGS="-Icompat/pthreads $CFLAGS" | |
60 | PTHREAD_LDFLAGS="-Lcompat/pthreads/x64" | |
61 | # SHOULD BE AT END! after -lcrypto # | |
2cf78c99 | 62 | WS2_LIBS="-L/mingw/x86_64-w64-mingw32/lib -lws2_32" |
b089cc9f | 63 | ;; |
3967e063 | 64 | i*86-*-*) |
65 | have_x86=true | |
b089cc9f | 66 | ;; |
3967e063 | 67 | x86_64-*-*|amd64-*-*) |
68 | have_x86_64=true | |
b089cc9f LJ |
69 | ;; |
70 | esac | |
71 | ||
c6427bc1 | 72 | AC_ARG_ENABLE([assembly], |
73 | AS_HELP_STRING([--disable-assembly], [disable assembly-language routines])) | |
74 | if test x$enable_assembly != xno; then | |
75 | AC_DEFINE([USE_ASM], [1], [Define to 1 if assembly routines are wanted.]) | |
76 | fi | |
77 | ||
78 | if test x$enable_assembly != xno -a x$have_x86_64 = xtrue | |
b089cc9f LJ |
79 | then |
80 | AC_MSG_CHECKING(whether we can compile AVX code) | |
81 | AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[asm ("vmovdqa %ymm0, %ymm1");])], | |
82 | AC_DEFINE(USE_AVX, 1, [Define to 1 if AVX assembly is available.]) | |
83 | AC_MSG_RESULT(yes) | |
84 | AC_MSG_CHECKING(whether we can compile XOP code) | |
85 | AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[asm ("vprotd \$7, %xmm0, %xmm1");])], | |
86 | AC_DEFINE(USE_XOP, 1, [Define to 1 if XOP assembly is available.]) | |
87 | AC_MSG_RESULT(yes) | |
88 | , | |
89 | AC_MSG_RESULT(no) | |
90 | AC_MSG_WARN([The assembler does not support the XOP instruction set.]) | |
91 | ) | |
92 | AC_MSG_CHECKING(whether we can compile AVX2 code) | |
93 | AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[asm ("vpaddd %ymm0, %ymm1, %ymm2");])], | |
94 | AC_DEFINE(USE_AVX2, 1, [Define to 1 if AVX2 assembly is available.]) | |
95 | AC_MSG_RESULT(yes) | |
96 | , | |
97 | AC_MSG_RESULT(no) | |
98 | AC_MSG_WARN([The assembler does not support the AVX2 instruction set.]) | |
99 | ) | |
100 | , | |
101 | AC_MSG_RESULT(no) | |
102 | AC_MSG_WARN([The assembler does not support the AVX instruction set.]) | |
103 | ) | |
104 | fi | |
105 | ||
106 | AC_CHECK_LIB(jansson, json_loads, request_jansson=false, request_jansson=true) | |
b089cc9f | 107 | |
3967e063 | 108 | # GC2 for GNU static |
109 | if test "x$OS" = "xWindows_NT" ; then | |
110 | # MinGW | |
111 | AC_CHECK_LIB([pthread], [pthread_create], PTHREAD_LIBS="-lpthreadGC2",[]) | |
112 | else | |
113 | AC_CHECK_LIB([pthread], [pthread_create], PTHREAD_LIBS="-lpthread",[]) | |
114 | fi | |
115 | ||
116 | LDFLAGS="$PTHREAD_LDFLAGS $LDFLAGS" | |
117 | # PTHREAD_LIBS="$PTHREAD_LIBS" | |
fcb039bd | 118 | |
9119d7be LJ |
119 | AC_MSG_CHECKING(whether __uint128_t is supported) |
120 | AC_COMPILE_IFELSE([AC_LANG_PROGRAM([static __uint128_t i = 100;])], | |
121 | AC_DEFINE(USE_INT128, 1, [Define if __uint128_t is available]) | |
122 | AC_MSG_RESULT(yes) | |
123 | , | |
124 | AC_MSG_RESULT(no) | |
125 | ) | |
126 | ||
3967e063 | 127 | # allow if <var> in Makefile.am |
b089cc9f LJ |
128 | AM_CONDITIONAL([WANT_JANSSON], [test x$request_jansson = xtrue]) |
129 | AM_CONDITIONAL([HAVE_WINDOWS], [test x$have_win32 = xtrue]) | |
c6427bc1 | 130 | AM_CONDITIONAL([USE_ASM], [test x$enable_assembly != xno]) |
b089cc9f LJ |
131 | AM_CONDITIONAL([ARCH_x86], [test x$have_x86 = xtrue]) |
132 | AM_CONDITIONAL([ARCH_x86_64], [test x$have_x86_64 = xtrue]) | |
133 | AM_CONDITIONAL([ARCH_ARM], [test x$have_arm = xtrue]) | |
3967e063 | 134 | AM_CONDITIONAL([MINGW], [test "x$OS" = "xWindows_NT"]) |
b089cc9f | 135 | |
3967e063 | 136 | if test x$request_jansson = xtrue ; then |
b089cc9f LJ |
137 | JANSSON_LIBS="compat/jansson/libjansson.a" |
138 | else | |
139 | JANSSON_LIBS=-ljansson | |
140 | fi | |
141 | ||
3967e063 | 142 | # libcurl install path (for mingw : --with-curl=/usr/local) |
143 | AC_ARG_WITH([curl], | |
144 | [ --with-curl=PATH prefix where curl is installed [default=/usr]]) | |
145 | ||
146 | if test -n "$with_curl" ; then | |
147 | LIBCURL_CFLAGS="$LIBCURL_CFLAGS -I$with_curl/include" | |
2a5ea599 | 148 | LIBCURL_CPPFLAGS="$LIBCURL_CPPFLAGS -I$with_curl/include" |
3967e063 | 149 | LIBCURL_LDFLAGS="-L$with_curl/lib $LIBCURL_LDFLAGS" |
150 | LIBCURL="-lcurl -lz" | |
151 | fi | |
152 | ||
153 | # SSL install path (for mingw : --with-crypto=/usr/local/ssl) | |
154 | AC_ARG_WITH([crypto], | |
155 | [ --with-crypto=PATH prefix where openssl crypto is installed [default=/usr]]) | |
156 | ||
157 | if test -n "$with_crypto" ; then | |
158 | LIBCURL_CFLAGS="$LIBCURL_CFLAGS -I$with_crypto/include" | |
2a5ea599 | 159 | LIBCURL_CPPFLAGS="$LIBCURL_CPPFLAGS -I$with_crypto/include" |
3967e063 | 160 | LIBCURL_LDFLAGS="-L$with_crypto/lib $LIBCURL_LDFLAGS" |
161 | LIBCURL="$LIBCURL -lssl -lcrypto" | |
162 | fi | |
163 | ||
164 | CFLAGS="$CFLAGS $LIBCURL_CFLAGS" | |
2a5ea599 | 165 | CPPFLAGS="$CPPFLAGS $LIBCURL_CPPFLAGS" |
3967e063 | 166 | LDFLAGS="$LDFLAGS $LIBCURL_LDFLAGS" |
167 | ||
2fb53659 | 168 | #AC_CHECK_LIB([z],[gzopen],[],[]) |
3967e063 | 169 | #AC_CHECK_LIB([crypto],[OPENSSL_init], crypto=yes, [AC_MSG_ERROR([OpenSSL crypto library required])]) |
170 | #AC_CHECK_LIB([ssl],[SSL_new], ssl=yes, ssl=no) | |
171 | ||
172 | # AC_CHECK_LIB([curl], [curl_multi_timeout], | |
173 | # have_libcurl=yes, | |
174 | # have_libcurl=no AC_MSG_ERROR([curl library required]) | |
175 | # ) | |
176 | ||
177 | # LIBCURL_CHECK_CONFIG([yes], 7.15, curlconfig=yes, curlconfig=no) | |
178 | ||
179 | AC_SUBST(LIBCURL) | |
180 | AC_SUBST(LIBCURL_CFLAGS) | |
181 | AC_SUBST(LIBCURL_CPPFLAGS) | |
182 | # AC_SUBST(LIBCURL_LDFLAGS) | |
b089cc9f LJ |
183 | |
184 | AC_SUBST(JANSSON_LIBS) | |
185 | AC_SUBST(PTHREAD_FLAGS) | |
186 | AC_SUBST(PTHREAD_LIBS) | |
187 | AC_SUBST(WS2_LIBS) | |
188 | ||
189 | AC_CONFIG_FILES([ | |
190 | Makefile | |
191 | compat/Makefile | |
192 | compat/jansson/Makefile | |
193 | ]) | |
194 | AC_OUTPUT |