diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 194 |
1 files changed, 146 insertions, 48 deletions
diff --git a/configure.ac b/configure.ac index e82fe1f0..762736df 100644 --- a/configure.ac +++ b/configure.ac | |||
@@ -32,6 +32,18 @@ BUILD_TESTS="yes" | |||
32 | NCURSES_FOUND="no" | 32 | NCURSES_FOUND="no" |
33 | LIBCONFIG_FOUND="no" | 33 | LIBCONFIG_FOUND="no" |
34 | LIBCHECK_FOUND="no" | 34 | LIBCHECK_FOUND="no" |
35 | WANT_NACL="no" | ||
36 | |||
37 | AC_ARG_ENABLE([nacl], | ||
38 | [AC_HELP_STRING([--enable-tests], [use nacl instead of libsodium (default: disabled)]) ], | ||
39 | [ | ||
40 | if test "x$enableval" = "xno"; then | ||
41 | WANT_NACL="no" | ||
42 | elif test "x$enableval" = "xyes"; then | ||
43 | WANT_NACL="yes" | ||
44 | fi | ||
45 | ] | ||
46 | ) | ||
35 | 47 | ||
36 | AC_ARG_ENABLE([tests], | 48 | AC_ARG_ENABLE([tests], |
37 | [AC_HELP_STRING([--disable-tests], [build unit tests (default: auto)]) ], | 49 | [AC_HELP_STRING([--disable-tests], [build unit tests (default: auto)]) ], |
@@ -69,6 +81,8 @@ AC_ARG_ENABLE([dht-bootstrap-daemon], | |||
69 | DEPSEARCH= | 81 | DEPSEARCH= |
70 | LIBSODIUM_SEARCH_HEADERS= | 82 | LIBSODIUM_SEARCH_HEADERS= |
71 | LIBSODIUM_SEARCH_LIBS= | 83 | LIBSODIUM_SEARCH_LIBS= |
84 | NACL_SEARCH_HEADERS= | ||
85 | NACL_SEARCH_LIBS= | ||
72 | 86 | ||
73 | AC_ARG_WITH(dependency-search, | 87 | AC_ARG_WITH(dependency-search, |
74 | AC_HELP_STRING([--with-dependency-search=DIR], | 88 | AC_HELP_STRING([--with-dependency-search=DIR], |
@@ -86,6 +100,24 @@ if test -n "$DEPSEARCH"; then | |||
86 | export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$DEPSEARCH/lib/pkgconfig | 100 | export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$DEPSEARCH/lib/pkgconfig |
87 | fi | 101 | fi |
88 | 102 | ||
103 | AC_ARG_WITH(nacl-headers, | ||
104 | AC_HELP_STRING([--with-nacl-headers=DIR], | ||
105 | [search for nacl<F2> header files in DIR]), | ||
106 | [ | ||
107 | NACL_SEARCH_HEADERS="$withval" | ||
108 | AC_MSG_NOTICE([will search for nacl header files in $withval]) | ||
109 | ] | ||
110 | ) | ||
111 | |||
112 | AC_ARG_WITH(nacl-libs, | ||
113 | AC_HELP_STRING([--with-nacl-libs=DIR], | ||
114 | [search for nacl libraries in DIR]), | ||
115 | [ | ||
116 | NACL_SEARCH_LIBS="$withval" | ||
117 | AC_MSG_NOTICE([will search for nacl libraries in $withval]) | ||
118 | ] | ||
119 | ) | ||
120 | |||
89 | AC_ARG_WITH(libsodium-headers, | 121 | AC_ARG_WITH(libsodium-headers, |
90 | AC_HELP_STRING([--with-libsodium-headers=DIR], | 122 | AC_HELP_STRING([--with-libsodium-headers=DIR], |
91 | [search for libsodium header files in DIR]), | 123 | [search for libsodium header files in DIR]), |
@@ -132,61 +164,128 @@ AM_CONDITIONAL(WIN32, test "x$WIN32" = "xyes") | |||
132 | AC_SUBST(EXTRA_LT_LDFLAGS) | 164 | AC_SUBST(EXTRA_LT_LDFLAGS) |
133 | 165 | ||
134 | # Checks for libraries. | 166 | # Checks for libraries. |
135 | LIBSODIUM_LIBS= | 167 | |
136 | LIBSODIUM_LDFLAGS= | 168 | if test "x$WANT_NACL" = "xyes"; then |
137 | LDFLAGS_SAVE="$LDFLAGS" | 169 | NACL_LIBS= |
138 | if test -n "$LIBSODIUM_SEARCH_LIBS"; then | 170 | NACL_LDFLAGS= |
139 | LDFLAGS="-L$LIBSODIUM_SEARCH_LIBS $LDFLAGS" | 171 | LDFLAGS_SAVE="$LDFLAGS" |
140 | AC_CHECK_LIB(sodium, randombytes_random, | 172 | if test -n "$NACL_SEARCH_LIBS"; then |
141 | [ | 173 | LDFLAGS="-L$NACL_SEARCH_LIBS $LDFLAGS" |
142 | LIBSODIUM_LDFLAGS="-L$LIBSODIUM_SEARCH_LIBS" | 174 | AC_CHECK_LIB(nacl, random, |
143 | LIBSODIUM_LIBS="-lsodium" | 175 | [ |
144 | ], | 176 | NACL_LDFLAGS="-L$NACL_SEARCH_LIBS" |
145 | [ | 177 | NACL_LIBS="-lnacl" |
146 | AC_MSG_ERROR([required library libsodium was not found in requested location $LIBSODIUM_SEARCH_LIBS]) | 178 | ], |
147 | ] | 179 | [ |
148 | ) | 180 | AC_MSG_ERROR([library nacl was not found in requested location $NACL_SEARCH_LIBS]) |
181 | ] | ||
182 | ) | ||
183 | else | ||
184 | AC_CHECK_LIB(nacl, random, | ||
185 | [], | ||
186 | [ | ||
187 | AC_MSG_ERROR([you enabled nacl support, but library nacl was not found on your system]) | ||
188 | ] | ||
189 | ) | ||
190 | fi | ||
191 | |||
192 | if (test -f "$NACL_SEARCH_LIBS/cpucycles.o") && | ||
193 | (test -f "$NACL_SEARCH_LIBS/randombytes.o"); then | ||
194 | NACL_LIBS="$NACL_LIBS $NACL_SEARCH_LIBS/cpucycles.o $NACL_SEARCH_LIBS/randombytes.o" | ||
195 | else | ||
196 | AC_MSG_ERROR([nacl weirdness: required object files cpucycles.o randombytes.o not found]) | ||
197 | fi | ||
198 | |||
199 | LDFLAGS="$LDFLAGS_SAVE" | ||
200 | AC_SUBST(NACL_LIBS) | ||
201 | AC_SUBST(NACL_LDFLAGS) | ||
149 | else | 202 | else |
150 | AC_CHECK_LIB(sodium, randombytes_random, | 203 | LIBSODIUM_LIBS= |
151 | [], | 204 | LIBSODIUM_LDFLAGS= |
152 | [ | 205 | LDFLAGS_SAVE="$LDFLAGS" |
153 | AC_MSG_ERROR([required library libsodium was not found on your system, please check http://download.libsodium.org/libsodium/releases/]) | 206 | if test -n "$LIBSODIUM_SEARCH_LIBS"; then |
154 | ] | 207 | LDFLAGS="-L$LIBSODIUM_SEARCH_LIBS $LDFLAGS" |
155 | ) | 208 | AC_CHECK_LIB(sodium, randombytes_random, |
156 | fi | 209 | [ |
210 | LIBSODIUM_LDFLAGS="-L$LIBSODIUM_SEARCH_LIBS" | ||
211 | LIBSODIUM_LIBS="-lsodium" | ||
212 | ], | ||
213 | [ | ||
214 | AC_MSG_ERROR([required library libsodium was not found in requested location $LIBSODIUM_SEARCH_LIBS]) | ||
215 | ] | ||
216 | ) | ||
217 | else | ||
218 | AC_CHECK_LIB(sodium, randombytes_random, | ||
219 | [], | ||
220 | [ | ||
221 | AC_MSG_ERROR([required library libsodium was not found on your system, please check http://download.libsodium.org/libsodium/releases/]) | ||
222 | ] | ||
223 | ) | ||
224 | fi | ||
157 | 225 | ||
158 | LDFLAGS="$LDFLAGS_SAVE" | 226 | LDFLAGS="$LDFLAGS_SAVE" |
159 | AC_SUBST(LIBSODIUM_LIBS) | 227 | AC_SUBST(LIBSODIUM_LIBS) |
160 | AC_SUBST(LIBSODIUM_LDFLAGS) | 228 | AC_SUBST(LIBSODIUM_LDFLAGS) |
229 | fi | ||
161 | 230 | ||
162 | # Checks for header files. | 231 | # Checks for header files. |
163 | AC_CHECK_HEADERS([arpa/inet.h fcntl.h netdb.h netinet/in.h stdint.h stdlib.h string.h sys/socket.h sys/time.h unistd.h]) | 232 | AC_CHECK_HEADERS([arpa/inet.h fcntl.h netdb.h netinet/in.h stdint.h stdlib.h string.h sys/socket.h sys/time.h unistd.h]) |
164 | 233 | ||
165 | LIBSODIUM_CFLAGS= | 234 | |
166 | CFLAGS_SAVE="$CFLAGS" | 235 | if test "x$WANT_NACL" = "xyes"; then |
167 | CPPFLAGS_SAVE="$CPPFLAGS" | 236 | NACL_CFLAGS= |
168 | if test -n "$LIBSODIUM_SEARCH_HEADERS"; then | 237 | CFLAGS_SAVE="$CFLAGS" |
169 | CFLAGS="-I$LIBSODIUM_SEARCH_HEADERS $CFLAGS" | 238 | CPPFLAGS_SAVE="$CPPFLAGS" |
170 | CPPFLAGS="-I$LIBSODIUM_SEARCH_HEADERS $CPPFLAGS" | 239 | if test -n "$NACL_SEARCH_HEADERS"; then |
171 | AC_CHECK_HEADER(sodium.h, | 240 | CFLAGS="-I$NACL_SEARCH_HEADERS $CFLAGS" |
172 | [ | 241 | CPPFLAGS="-I$NACL_SEARCH_HEADERS $CPPFLAGS" |
173 | LIBSODIUM_CFLAGS="-I$LIBSODIUM_SEARCH_HEADERS" | 242 | AC_CHECK_HEADER(crypto_box.h, |
174 | ], | 243 | [ |
175 | [ | 244 | NACL_CFLAGS="-I$NACL_SEARCH_HEADERS" |
176 | AC_MSG_ERROR([header files for required library libsodium was not found in requested location $LIBSODIUM_SEARCH_HEADERS]) | 245 | ], |
177 | ] | 246 | [ |
178 | ) | 247 | AC_MSG_ERROR([header files for library nacl were not found in requested location $NACL_SEARCH_HEADERS]) |
248 | ] | ||
249 | ) | ||
250 | else | ||
251 | AC_CHECK_HEADER(crypto_box.h, | ||
252 | [], | ||
253 | [ | ||
254 | AC_MSG_ERROR([you enabled nacl support, but nacl header files were not found on your system]) | ||
255 | ] | ||
256 | ) | ||
257 | fi | ||
258 | CFLAGS="$CFLAGS_SAVE" | ||
259 | CPPFLAGS="$CPPFLAGS_SAVE" | ||
260 | AC_SUBST(NACL_CFLAGS) | ||
261 | AC_DEFINE([VANILLA_NACL], [1], [use nacl instead of libsodium]) | ||
179 | else | 262 | else |
180 | AC_CHECK_HEADER(sodium.h, | 263 | LIBSODIUM_CFLAGS= |
181 | [], | 264 | CFLAGS_SAVE="$CFLAGS" |
182 | [ | 265 | CPPFLAGS_SAVE="$CPPFLAGS" |
183 | AC_MSG_ERROR([header files for required library libsodium was not found on your system, please check http://download.libsodium.org/libsodium/releases/]) | 266 | if test -n "$LIBSODIUM_SEARCH_HEADERS"; then |
184 | ] | 267 | CFLAGS="-I$LIBSODIUM_SEARCH_HEADERS $CFLAGS" |
185 | ) | 268 | CPPFLAGS="-I$LIBSODIUM_SEARCH_HEADERS $CPPFLAGS" |
269 | AC_CHECK_HEADER(sodium.h, | ||
270 | [ | ||
271 | LIBSODIUM_CFLAGS="-I$LIBSODIUM_SEARCH_HEADERS" | ||
272 | ], | ||
273 | [ | ||
274 | AC_MSG_ERROR([header files for required library libsodium were not found in requested location $LIBSODIUM_SEARCH_HEADERS]) | ||
275 | ] | ||
276 | ) | ||
277 | else | ||
278 | AC_CHECK_HEADER(sodium.h, | ||
279 | [], | ||
280 | [ | ||
281 | AC_MSG_ERROR([header files for required library libsodium was not found on your system, please check http://download.libsodium.org/libsodium/releases/]) | ||
282 | ] | ||
283 | ) | ||
284 | fi | ||
285 | CFLAGS="$CFLAGS_SAVE" | ||
286 | CPPFLAGS="$CPPFLAGS_SAVE" | ||
287 | AC_SUBST(LIBSODIUM_CFLAGS) | ||
186 | fi | 288 | fi |
187 | CFLAGS="$CFLAGS_SAVE" | ||
188 | CPPFLAGS="$CPPFLAGS_SAVE" | ||
189 | AC_SUBST(LIBSODIUM_CFLAGS) | ||
190 | 289 | ||
191 | # Checks for typedefs, structures, and compiler characteristics. | 290 | # Checks for typedefs, structures, and compiler characteristics. |
192 | AC_HEADER_STDBOOL | 291 | AC_HEADER_STDBOOL |
@@ -201,7 +300,6 @@ AC_TYPE_UINT8_T | |||
201 | 300 | ||
202 | # Checks for library functions. | 301 | # Checks for library functions. |
203 | AC_FUNC_FORK | 302 | AC_FUNC_FORK |
204 | AC_FUNC_REALLOC | ||
205 | AC_CHECK_FUNCS([gettimeofday memset socket strchr malloc]) | 303 | AC_CHECK_FUNCS([gettimeofday memset socket strchr malloc]) |
206 | 304 | ||
207 | # pkg-config based tests | 305 | # pkg-config based tests |