diff options
author | Evgeny Grin (Karlson2k) <k2k@narod.ru> | 2017-06-20 23:55:34 +0300 |
---|---|---|
committer | Evgeny Grin (Karlson2k) <k2k@narod.ru> | 2017-06-20 23:55:34 +0300 |
commit | a7b7a32ec6dd493e00573da4b2f343f02feb0aa7 (patch) | |
tree | 2a9ec05b301f297ca1b302dcb74beb08d164aca5 /configure.ac | |
parent | 6364c4700d06232f2ea418b2146ba9e264d90086 (diff) | |
download | libmicrohttpd-a7b7a32ec6dd493e00573da4b2f343f02feb0aa7.tar.gz libmicrohttpd-a7b7a32ec6dd493e00573da4b2f343f02feb0aa7.zip |
Dropped dependency on libgcrypt with new GnuTLS (>2.12.20) versions
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 175 |
1 files changed, 132 insertions, 43 deletions
diff --git a/configure.ac b/configure.ac index b8b10c62..c249aef1 100644 --- a/configure.ac +++ b/configure.ac | |||
@@ -1255,20 +1255,6 @@ then | |||
1255 | # Next block is large unindented block | 1255 | # Next block is large unindented block |
1256 | # | 1256 | # |
1257 | 1257 | ||
1258 | # libgcrypt linkage: required for HTTPS support | ||
1259 | AM_PATH_LIBGCRYPT([1.2.2], [have_gcrypt=yes], [have_gcrypt=no]) | ||
1260 | if test "x$have_gcrypt" = "xyes" | ||
1261 | then | ||
1262 | SAVE_CFLAGS="$CFLAGS" | ||
1263 | CFLAGS="$CFLAGS $LIBGCRYPT_CFLAGS" | ||
1264 | # LIBGCRYPT_CFLAGS can be actually a CPPFLAGS, so check them both | ||
1265 | SAVE_CPPFLAGS="$CPPFLAGS" | ||
1266 | CPPFLAGS="$CPPFLAGS $LIBGCRYPT_CFLAGS" | ||
1267 | AC_CHECK_HEADERS([gcrypt.h], [], [have_gcrypt=no], [AC_INCLUDES_DEFAULT]) | ||
1268 | CFLAGS="$SAVE_CFLAGS" | ||
1269 | CPPFLAGS="$SAVE_CPPFLAGS" | ||
1270 | fi | ||
1271 | |||
1272 | # gnutls | 1258 | # gnutls |
1273 | have_gnutls_pkgcfg=no | 1259 | have_gnutls_pkgcfg=no |
1274 | AC_MSG_CHECKING([[how to find GnuTLS library]]) | 1260 | AC_MSG_CHECKING([[how to find GnuTLS library]]) |
@@ -1358,16 +1344,33 @@ AS_IF([test "x$with_gnutls" != "xno" && test "x$have_gnutls" != "xyes"], | |||
1358 | LIBS="$SAVE_LIBS" | 1344 | LIBS="$SAVE_LIBS" |
1359 | ], | 1345 | ], |
1360 | [ | 1346 | [ |
1347 | # check for GnuTLS at default paths | ||
1361 | have_gnutls_pkgcfg='no' | 1348 | have_gnutls_pkgcfg='no' |
1349 | AC_CHECK_HEADERS([gnutls/gnutls.h], | ||
1350 | [AC_CHECK_LIB([gnutls], [gnutls_priority_set], | ||
1351 | [ | ||
1352 | GNUTLS_LIBS="-lgnutls" | ||
1353 | AC_CHECK_LIB([gnutls], [gnutls_load_file], [AC_CHECK_LIB([gnutls], [gnutls_privkey_import_x509_raw], [have_gnutls_sni=yes])]) | ||
1354 | have_gnutls=yes | ||
1355 | ])], [], [AC_INCLUDES_DEFAULT]) | ||
1356 | ]) | ||
1357 | ]) | ||
1358 | |||
1359 | have_gcrypt='unknown' | ||
1360 | AS_IF([test "x$with_gnutls" != "xno" && test "x$have_gnutls" != "xyes"], | ||
1361 | [ | ||
1362 | AM_PATH_LIBGCRYPT([1.2.2], [have_gcrypt=yes], [have_gcrypt=no]) | ||
1363 | AS_IF([[test "x$have_gcrypt" = "xyes"]], | ||
1364 | [ | ||
1362 | SAVE_CPPFLAGS="$CPPFLAGS" | 1365 | SAVE_CPPFLAGS="$CPPFLAGS" |
1363 | SAVE_CFLAGS="$CFLAGS" | 1366 | SAVE_CFLAGS="$CFLAGS" |
1364 | SAVE_LDFLAGS="$LDFLAGS" | ||
1365 | SAVE_LIBS="$LIBS" | 1367 | SAVE_LIBS="$LIBS" |
1366 | # Try to use libgcrypt search path | 1368 | SAVE_LDFLAGS="$LDFLAGS" |
1367 | # as libgcrypt flags will be used | ||
1368 | # anyway for HTTPs builds | ||
1369 | CFLAGS="$CFLAGS $LIBGCRYPT_CFLAGS" | 1369 | CFLAGS="$CFLAGS $LIBGCRYPT_CFLAGS" |
1370 | # LIBGCRYPT_CFLAGS can be actually a CPPFLAGS, so check them both | ||
1370 | CPPFLAGS="$CPPFLAGS $LIBGCRYPT_CFLAGS" | 1371 | CPPFLAGS="$CPPFLAGS $LIBGCRYPT_CFLAGS" |
1372 | AC_CHECK_HEADERS([gcrypt.h], [], [have_gcrypt=no], [AC_INCLUDES_DEFAULT]) | ||
1373 | # Check for GnuTLS with gcrypt flags | ||
1371 | LDFLAGS="$LDFLAGS $LIBGCRYPT_LIBS" | 1374 | LDFLAGS="$LDFLAGS $LIBGCRYPT_LIBS" |
1372 | AC_CHECK_HEADERS([gnutls/gnutls.h], | 1375 | AC_CHECK_HEADERS([gnutls/gnutls.h], |
1373 | [AC_CHECK_LIB([gnutls], [gnutls_priority_set], | 1376 | [AC_CHECK_LIB([gnutls], [gnutls_priority_set], |
@@ -1383,44 +1386,129 @@ AS_IF([test "x$with_gnutls" != "xno" && test "x$have_gnutls" != "xyes"], | |||
1383 | CFLAGS="$SAVE_CFLAGS" | 1386 | CFLAGS="$SAVE_CFLAGS" |
1384 | LDFLAGS="$SAVE_LDFLAGS" | 1387 | LDFLAGS="$SAVE_LDFLAGS" |
1385 | LIBS="$SAVE_LIBS" | 1388 | LIBS="$SAVE_LIBS" |
1386 | ]) | 1389 | ] |
1387 | ]) | 1390 | ) |
1388 | 1391 | ] | |
1392 | ) | ||
1389 | AS_IF([test "x$have_gnutls" != "xyes" && test "x$with_gnutls" = "xyes"], [AC_MSG_ERROR([[can't find usable libgnutls]])]) | 1393 | AS_IF([test "x$have_gnutls" != "xyes" && test "x$with_gnutls" = "xyes"], [AC_MSG_ERROR([[can't find usable libgnutls]])]) |
1390 | |||
1391 | AC_SUBST([GNUTLS_CPPFLAGS]) | ||
1392 | AC_SUBST([GNUTLS_CFLAGS]) | ||
1393 | AC_SUBST([GNUTLS_LDFLAGS]) | ||
1394 | AC_SUBST([GNUTLS_LIBS]) | ||
1395 | |||
1396 | # | 1394 | # |
1397 | # End of large unindented block | 1395 | # End of large unindented block |
1398 | # | 1396 | # |
1399 | AS_IF([test "x$have_gnutls" = "xyes" && test "x$have_gcrypt" = "xyes"], [ | 1397 | |
1398 | AS_IF([test "x$have_gnutls" = "xyes"], | ||
1399 | [ | ||
1400 | SAVE_CPPFLAGS="$CPPFLAGS" | ||
1401 | SAVE_CFLAGS="$CFLAGS" | ||
1402 | SAVE_LDFLAGS="$LDFLAGS" | ||
1403 | SAVE_LIBS="$LIBS" | ||
1404 | CPPFLAGS="$GNUTLS_CFLAGS $CPPFLAGS" | ||
1405 | CFLAGS="$GNUTLS_CFLAGS $CFLAGS" | ||
1406 | LDFLAGS="$GNUTLS_LIBS $LDFLAGS" | ||
1407 | LIBS="$LIBS $GNUTLS_LIBS" | ||
1408 | AC_CACHE_CHECK([[whether GnuTLS require libgcrypt initialisaion]], [mhd_cv_grypt_required], | ||
1409 | [ | ||
1410 | AC_COMPILE_IFELSE( | ||
1411 | [ | ||
1412 | AC_LANG_PROGRAM( | ||
1413 | [ | ||
1414 | #include <gnutls/gnutls.h> | ||
1415 | ], | ||
1416 | [ | ||
1417 | #if !defined(GNUTLS_VERSION_NUMBER) || GNUTLS_VERSION_NUMBER+0 <= 0x020c14 | ||
1418 | #error Old versions of GnuTLS require libgcript initialisaion | ||
1419 | choke me now | ||
1420 | #endif | ||
1421 | ] | ||
1422 | ) | ||
1423 | ], | ||
1424 | [[mhd_cv_grypt_required='no']], [[mhd_cv_grypt_required='yes']] | ||
1425 | ) | ||
1426 | ] | ||
1427 | ) | ||
1428 | CPPFLAGS="$SAVE_CPPFLAGS" | ||
1429 | CFLAGS="$SAVE_CFLAGS" | ||
1430 | LDFLAGS="$SAVE_LDFLAGS" | ||
1431 | LIBS="$SAVE_LIBS" | ||
1432 | ] | ||
1433 | ) | ||
1434 | |||
1435 | AS_IF([[test "x$mhd_cv_grypt_required" = "xyes" && test "x$have_gcrypt" = "xunknown"]], | ||
1436 | [ | ||
1437 | AM_PATH_LIBGCRYPT([1.2.2], [have_gcrypt=yes], [have_gcrypt=no]) | ||
1438 | AS_IF([[test "x$have_gcrypt" = "xyes"]], | ||
1439 | [ | ||
1440 | SAVE_CPPFLAGS="$CPPFLAGS" | ||
1441 | SAVE_CFLAGS="$CFLAGS" | ||
1442 | CFLAGS="$CFLAGS $LIBGCRYPT_CFLAGS" | ||
1443 | # LIBGCRYPT_CFLAGS can be actually a CPPFLAGS, so check them both | ||
1444 | CPPFLAGS="$CPPFLAGS $LIBGCRYPT_CFLAGS" | ||
1445 | AC_CHECK_HEADERS([gcrypt.h], [], [have_gcrypt=no], [AC_INCLUDES_DEFAULT]) | ||
1446 | # Check for GnuTLS with gcrypt flags | ||
1447 | CPPFLAGS="$SAVE_CPPFLAGS" | ||
1448 | CFLAGS="$SAVE_CFLAGS" | ||
1449 | ] | ||
1450 | ) | ||
1451 | ] | ||
1452 | ) | ||
1453 | AC_SUBST([GNUTLS_CPPFLAGS]) | ||
1454 | AC_SUBST([GNUTLS_CFLAGS]) | ||
1455 | AC_SUBST([GNUTLS_LDFLAGS]) | ||
1456 | AC_SUBST([GNUTLS_LIBS]) | ||
1457 | |||
1458 | AS_UNSET([[crypt_missing]]) | ||
1459 | AS_IF([[test "x$have_gnutls" = "xyes"]], | ||
1460 | [ | ||
1461 | AS_IF([[test "x$mhd_cv_grypt_required" = "xyes" && test "x$have_gcrypt" != "xyes"]], | ||
1462 | [ | ||
1463 | crypt_missing="required libgcrypt" | ||
1464 | AS_IF([[test "x$enable_https" = "xyes" ]], [AC_MSG_ERROR([[HTTPS support cannot be enabled without $crypt_missing.]])]) | ||
1465 | enable_https=no | ||
1466 | MSG_HTTPS="no (lacking $crypt_missing)" | ||
1467 | ], | ||
1468 | [ | ||
1400 | AC_DEFINE([[HTTPS_SUPPORT]],[[1]],[Define to 1 if libmicrohttpd is compiled with HTTPS support.]) | 1469 | AC_DEFINE([[HTTPS_SUPPORT]],[[1]],[Define to 1 if libmicrohttpd is compiled with HTTPS support.]) |
1401 | enable_https=yes | 1470 | enable_https=yes |
1402 | MSG_HTTPS="yes (using libgnutls and libgcrypt)" | 1471 | AS_IF([[test "x$mhd_cv_grypt_required" = "xyes"]], |
1403 | MHD_LIB_CPPFLAGS="$MHD_LIB_CPPFLAGS $LIBGCRYPT_CFLAGS $GNUTLS_CPPFLAGS" | 1472 | [ |
1404 | MHD_LIB_CFLAGS="$MHD_LIB_CFLAGS $LIBGCRYPT_CFLAGS $GNUTLS_CFLAGS" | 1473 | MSG_HTTPS="yes (using libgnutls and libgcrypt)" |
1405 | MHD_LIB_LDFLAGS="$MHD_LIB_LDFLAGS $GNUTLS_LDFLAGS" | 1474 | MHD_LIB_CPPFLAGS="$MHD_LIB_CPPFLAGS $LIBGCRYPT_CFLAGS $GNUTLS_CPPFLAGS" |
1406 | MHD_LIBDEPS="$GNUTLS_LIBS $LIBGCRYPT_LIBS $MHD_LIBDEPS" | 1475 | MHD_LIB_CFLAGS="$MHD_LIB_CFLAGS $LIBGCRYPT_CFLAGS $GNUTLS_CFLAGS" |
1476 | MHD_LIB_LDFLAGS="$MHD_LIB_LDFLAGS $GNUTLS_LDFLAGS" | ||
1477 | MHD_LIBDEPS="$GNUTLS_LIBS $LIBGCRYPT_LIBS $MHD_LIBDEPS" | ||
1478 | AC_DEFINE([[MHD_HTTPS_REQUIRE_GRYPT]], [[1]], [Define to `1' if HTTPS require initialisation of libgcrypt]) | ||
1479 | ], | ||
1480 | [[ | ||
1481 | MSG_HTTPS="yes (using libgnutls)" | ||
1482 | MHD_LIB_CPPFLAGS="$MHD_LIB_CPPFLAGS $GNUTLS_CPPFLAGS" | ||
1483 | MHD_LIB_CFLAGS="$MHD_LIB_CFLAGS $GNUTLS_CFLAGS" | ||
1484 | MHD_LIB_LDFLAGS="$MHD_LIB_LDFLAGS $GNUTLS_LDFLAGS" | ||
1485 | MHD_LIBDEPS="$GNUTLS_LIBS $MHD_LIBDEPS" | ||
1486 | ]] | ||
1487 | ) | ||
1407 | AS_IF([[ test "x$have_gnutls_pkgcfg" = "xyes" ]], | 1488 | AS_IF([[ test "x$have_gnutls_pkgcfg" = "xyes" ]], |
1408 | [ # remove GnuTLS from private libs in .pc file as it defined in Requires.private | 1489 | [ # remove GnuTLS from private libs in .pc file as it defined in Requires.private |
1409 | MHD_REQ_PRIVATE='gnutls' | 1490 | MHD_REQ_PRIVATE='gnutls' |
1410 | MHD_LIBDEPS_PKGCFG="$LIBGCRYPT_LIBS $MHD_LIBDEPS_PKGCFG" | 1491 | AS_IF([[test "x$mhd_cv_grypt_required" = "xyes"]], |
1492 | [[MHD_LIBDEPS_PKGCFG="$LIBGCRYPT_LIBS $MHD_LIBDEPS_PKGCFG"]] | ||
1493 | ) | ||
1411 | ], | 1494 | ], |
1412 | [ | 1495 | [ |
1413 | MHD_REQ_PRIVATE='' | 1496 | MHD_REQ_PRIVATE='' |
1414 | MHD_LIBDEPS_PKGCFG="$GNUTLS_LIBS $LIBGCRYPT_LIBS $MHD_LIBDEPS_PKGCFG" | 1497 | AS_IF([[test "x$mhd_cv_grypt_required" = "xyes"]], |
1498 | [[MHD_LIBDEPS_PKGCFG="$LIBGCRYPT_LIBS $MHD_LIBDEPS_PKGCFG"]] | ||
1499 | ) | ||
1500 | MHD_LIBDEPS_PKGCFG="$GNUTLS_LIBS $MHD_LIBDEPS_PKGCFG" | ||
1415 | ]) | 1501 | ]) |
1416 | ], [ | 1502 | ] |
1417 | AS_IF([test "x$have_gnutls" = "xyes"], [crypt_missing="libgcrypt"], | 1503 | ) |
1418 | [test "x$have_gcrypt" = "xyes"], [crypt_missing="libgnutls"], | 1504 | ], |
1419 | [crypt_missing="libgcrypt and libgnutls"]) | 1505 | [ |
1420 | AS_IF([[test "x$enable_https" = "xyes" ]], [AC_MSG_ERROR([[HTTPS support cannot be enabled without $crypt_missing.]])]) | 1506 | crypt_missing="libgnutls" |
1421 | enable_https=no | 1507 | AS_IF([[test "x$enable_https" = "xyes" ]], [AC_MSG_ERROR([[HTTPS support cannot be enabled without $crypt_missing.]])]) |
1422 | MSG_HTTPS="no (lacking $crypt_missing)" | 1508 | enable_https=no |
1423 | ]) | 1509 | MSG_HTTPS="no (lacking $crypt_missing)" |
1510 | ] | ||
1511 | ) | ||
1424 | else | 1512 | else |
1425 | MSG_HTTPS="no (disabled)" | 1513 | MSG_HTTPS="no (disabled)" |
1426 | fi | 1514 | fi |
@@ -1430,6 +1518,7 @@ AC_MSG_RESULT([$MSG_HTTPS]) | |||
1430 | AM_CONDITIONAL([HAVE_GNUTLS], [[test "x$have_gnutls" = "xyes"]]) | 1518 | AM_CONDITIONAL([HAVE_GNUTLS], [[test "x$have_gnutls" = "xyes"]]) |
1431 | AM_CONDITIONAL([HAVE_GNUTLS_SNI], [[test "x$have_gnutls_sni" = "xyes"]]) | 1519 | AM_CONDITIONAL([HAVE_GNUTLS_SNI], [[test "x$have_gnutls_sni" = "xyes"]]) |
1432 | AM_CONDITIONAL([ENABLE_HTTPS], [test "x$enable_https" = "xyes"]) | 1520 | AM_CONDITIONAL([ENABLE_HTTPS], [test "x$enable_https" = "xyes"]) |
1521 | AM_CONDITIONAL([HTTPS_REQUIRE_GRYPT], [[test "x$enable_https" = "xyes" && test "x$mhd_cv_grypt_required" = "xyes"]]) | ||
1433 | 1522 | ||
1434 | # optional: HTTP Basic Auth support. Enabled by default | 1523 | # optional: HTTP Basic Auth support. Enabled by default |
1435 | AC_MSG_CHECKING([[whether to support HTTP basic authentication]]) | 1524 | AC_MSG_CHECKING([[whether to support HTTP basic authentication]]) |