Skip to content
This repository was archived by the owner on Jan 30, 2023. It is now read-only.

Commit 643f973

Browse files
author
Matthias Koeppe
committed
build/pkgs/openssl/spkg-configure.m4: New
1 parent 5ec24db commit 643f973

File tree

2 files changed

+127
-0
lines changed

2 files changed

+127
-0
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
SAGE_SPKG_CONFIGURE([openssl], [
2+
AX_CHECK_OPENSSL([], [sage_spkg_install_openssl=yes])
3+
])

m4/ax_check_openssl.m4

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
# ===========================================================================
2+
# https://www.gnu.org/software/autoconf-archive/ax_check_openssl.html
3+
# ===========================================================================
4+
#
5+
# SYNOPSIS
6+
#
7+
# AX_CHECK_OPENSSL([action-if-found[, action-if-not-found]])
8+
#
9+
# DESCRIPTION
10+
#
11+
# Look for OpenSSL in a number of default spots, or in a user-selected
12+
# spot (via --with-openssl). Sets
13+
#
14+
# OPENSSL_INCLUDES to the include directives required
15+
# OPENSSL_LIBS to the -l directives required
16+
# OPENSSL_LDFLAGS to the -L or -R flags required
17+
#
18+
# and calls ACTION-IF-FOUND or ACTION-IF-NOT-FOUND appropriately
19+
#
20+
# This macro sets OPENSSL_INCLUDES such that source files should use the
21+
# openssl/ directory in include directives:
22+
#
23+
# #include <openssl/hmac.h>
24+
#
25+
# LICENSE
26+
#
27+
# Copyright (c) 2009,2010 Zmanda Inc. <http://www.zmanda.com/>
28+
# Copyright (c) 2009,2010 Dustin J. Mitchell <[email protected]>
29+
#
30+
# Copying and distribution of this file, with or without modification, are
31+
# permitted in any medium without royalty provided the copyright notice
32+
# and this notice are preserved. This file is offered as-is, without any
33+
# warranty.
34+
35+
#serial 10
36+
37+
AU_ALIAS([CHECK_SSL], [AX_CHECK_OPENSSL])
38+
AC_DEFUN([AX_CHECK_OPENSSL], [
39+
found=false
40+
AC_ARG_WITH([openssl],
41+
[AS_HELP_STRING([--with-openssl=DIR],
42+
[override root of the OpenSSL directory to DIR])],
43+
[
44+
case "$withval" in
45+
"" | y | ye | yes | n | no)
46+
AC_MSG_ERROR([Invalid --with-openssl value])
47+
;;
48+
*) ssldirs="$withval"
49+
;;
50+
esac
51+
], [
52+
# if pkg-config is installed and openssl has installed a .pc file,
53+
# then use that information and don't search ssldirs
54+
AC_CHECK_TOOL([PKG_CONFIG], [pkg-config])
55+
if test x"$PKG_CONFIG" != x""; then
56+
OPENSSL_LDFLAGS=`$PKG_CONFIG openssl --libs-only-L 2>/dev/null`
57+
if test $? = 0; then
58+
OPENSSL_LIBS=`$PKG_CONFIG openssl --libs-only-l 2>/dev/null`
59+
OPENSSL_INCLUDES=`$PKG_CONFIG openssl --cflags-only-I 2>/dev/null`
60+
found=true
61+
fi
62+
fi
63+
64+
# no such luck; use some default ssldirs
65+
if ! $found; then
66+
ssldirs="/usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /usr"
67+
fi
68+
]
69+
)
70+
71+
72+
# note that we #include <openssl/foo.h>, so the OpenSSL headers have to be in
73+
# an 'openssl' subdirectory
74+
75+
if ! $found; then
76+
OPENSSL_INCLUDES=
77+
for ssldir in $ssldirs; do
78+
AC_MSG_CHECKING([for openssl/ssl.h in $ssldir])
79+
if test -f "$ssldir/include/openssl/ssl.h"; then
80+
OPENSSL_INCLUDES="-I$ssldir/include"
81+
OPENSSL_LDFLAGS="-L$ssldir/lib"
82+
OPENSSL_LIBS="-lssl -lcrypto"
83+
found=true
84+
AC_MSG_RESULT([yes])
85+
break
86+
else
87+
AC_MSG_RESULT([no])
88+
fi
89+
done
90+
91+
# if the file wasn't found, well, go ahead and try the link anyway -- maybe
92+
# it will just work!
93+
fi
94+
95+
# try the preprocessor and linker with our new flags,
96+
# being careful not to pollute the global LIBS, LDFLAGS, and CPPFLAGS
97+
98+
AC_MSG_CHECKING([whether compiling and linking against OpenSSL works])
99+
echo "Trying link with OPENSSL_LDFLAGS=$OPENSSL_LDFLAGS;" \
100+
"OPENSSL_LIBS=$OPENSSL_LIBS; OPENSSL_INCLUDES=$OPENSSL_INCLUDES" >&AS_MESSAGE_LOG_FD
101+
102+
save_LIBS="$LIBS"
103+
save_LDFLAGS="$LDFLAGS"
104+
save_CPPFLAGS="$CPPFLAGS"
105+
LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS"
106+
LIBS="$OPENSSL_LIBS $LIBS"
107+
CPPFLAGS="$OPENSSL_INCLUDES $CPPFLAGS"
108+
AC_LINK_IFELSE(
109+
[AC_LANG_PROGRAM([#include <openssl/ssl.h>], [SSL_new(NULL)])],
110+
[
111+
AC_MSG_RESULT([yes])
112+
$1
113+
], [
114+
AC_MSG_RESULT([no])
115+
$2
116+
])
117+
CPPFLAGS="$save_CPPFLAGS"
118+
LDFLAGS="$save_LDFLAGS"
119+
LIBS="$save_LIBS"
120+
121+
AC_SUBST([OPENSSL_INCLUDES])
122+
AC_SUBST([OPENSSL_LIBS])
123+
AC_SUBST([OPENSSL_LDFLAGS])
124+
])

0 commit comments

Comments
 (0)