summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac194
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"
32NCURSES_FOUND="no" 32NCURSES_FOUND="no"
33LIBCONFIG_FOUND="no" 33LIBCONFIG_FOUND="no"
34LIBCHECK_FOUND="no" 34LIBCHECK_FOUND="no"
35WANT_NACL="no"
36
37AC_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
36AC_ARG_ENABLE([tests], 48AC_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],
69DEPSEARCH= 81DEPSEARCH=
70LIBSODIUM_SEARCH_HEADERS= 82LIBSODIUM_SEARCH_HEADERS=
71LIBSODIUM_SEARCH_LIBS= 83LIBSODIUM_SEARCH_LIBS=
84NACL_SEARCH_HEADERS=
85NACL_SEARCH_LIBS=
72 86
73AC_ARG_WITH(dependency-search, 87AC_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
87fi 101fi
88 102
103AC_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
112AC_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
89AC_ARG_WITH(libsodium-headers, 121AC_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")
132AC_SUBST(EXTRA_LT_LDFLAGS) 164AC_SUBST(EXTRA_LT_LDFLAGS)
133 165
134# Checks for libraries. 166# Checks for libraries.
135LIBSODIUM_LIBS= 167
136LIBSODIUM_LDFLAGS= 168if test "x$WANT_NACL" = "xyes"; then
137LDFLAGS_SAVE="$LDFLAGS" 169 NACL_LIBS=
138if 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)
149else 202else
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,
156fi 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
158LDFLAGS="$LDFLAGS_SAVE" 226 LDFLAGS="$LDFLAGS_SAVE"
159AC_SUBST(LIBSODIUM_LIBS) 227 AC_SUBST(LIBSODIUM_LIBS)
160AC_SUBST(LIBSODIUM_LDFLAGS) 228 AC_SUBST(LIBSODIUM_LDFLAGS)
229fi
161 230
162# Checks for header files. 231# Checks for header files.
163AC_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]) 232AC_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
165LIBSODIUM_CFLAGS= 234
166CFLAGS_SAVE="$CFLAGS" 235if test "x$WANT_NACL" = "xyes"; then
167CPPFLAGS_SAVE="$CPPFLAGS" 236 NACL_CFLAGS=
168if 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])
179else 262else
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)
186fi 288fi
187CFLAGS="$CFLAGS_SAVE"
188CPPFLAGS="$CPPFLAGS_SAVE"
189AC_SUBST(LIBSODIUM_CFLAGS)
190 289
191# Checks for typedefs, structures, and compiler characteristics. 290# Checks for typedefs, structures, and compiler characteristics.
192AC_HEADER_STDBOOL 291AC_HEADER_STDBOOL
@@ -201,7 +300,6 @@ AC_TYPE_UINT8_T
201 300
202# Checks for library functions. 301# Checks for library functions.
203AC_FUNC_FORK 302AC_FUNC_FORK
204AC_FUNC_REALLOC
205AC_CHECK_FUNCS([gettimeofday memset socket strchr malloc]) 303AC_CHECK_FUNCS([gettimeofday memset socket strchr malloc])
206 304
207# pkg-config based tests 305# pkg-config based tests