1dnl libssl.m4--Ssl libraries and includes
2dnl Derrick Brashear
3dnl from KTH kafs and Arla
4dnl $Id: libssl.m4,v 1.8 2002/12/21 18:44:25 cg2v Exp $
5
6AC_DEFUN(CMU_LIBSSL_INC_WHERE1, [
7saved_CPPFLAGS=$CPPFLAGS
8CPPFLAGS="$saved_CPPFLAGS -I$1"
9CMU_CHECK_HEADER_NOCACHE(openssl/ssl.h,
10ac_cv_found_libssl_inc=yes,
11ac_cv_found_libssl_inc=no)
12CPPFLAGS=$saved_CPPFLAGS
13])
14
15AC_DEFUN(CMU_LIBSSL_INC_WHERE, [
16   for i in $1; do
17      AC_MSG_CHECKING(for libssl headers in $i)
18      CMU_LIBSSL_INC_WHERE1($i)
19      CMU_TEST_INCPATH($i, ssl)
20      if test "$ac_cv_found_libssl_inc" = "yes"; then
21        ac_cv_libssl_where_inc=$i
22        AC_MSG_RESULT(found)
23        break
24      else
25        AC_MSG_RESULT(not found)
26      fi
27    done
28])
29
30AC_DEFUN(CMU_LIBSSL_LIB_WHERE1, [
31saved_LIBS=$LIBS
32LIBS="$saved_LIBS -L$1 -lssl -lcrypto $LIB_SOCKET"
33AC_TRY_LINK(,
34[SSL_write();],
35[ac_cv_found_ssl_lib=yes],
36ac_cv_found_ssl_lib=no)
37LIBS=$saved_LIBS
38])
39
40AC_DEFUN(CMU_LIBSSL_LIB_WHERE, [
41   for i in $1; do
42      AC_MSG_CHECKING(for libssl libraries in $i)
43      CMU_LIBSSL_LIB_WHERE1($i)
44      dnl deal with false positives from implicit link paths
45      CMU_TEST_LIBPATH($i, ssl)
46      if test "$ac_cv_found_ssl_lib" = "yes" ; then
47        ac_cv_libssl_where_lib=$i
48        AC_MSG_RESULT(found)
49        break
50      else
51        AC_MSG_RESULT(not found)
52      fi
53    done
54])
55
56AC_DEFUN(CMU_LIBSSL, [
57AC_REQUIRE([CMU_SOCKETS])
58AC_ARG_WITH(libssl,
59	[  --with-libssl=PREFIX      Compile with Libssl support],
60	[if test "X$with_libssl" = "X"; then
61		with_libssl=yes
62	fi])
63AC_ARG_WITH(libssl-lib,
64	[  --with-libssl-lib=dir     use libssl libraries in dir],
65	[if test "$withval" = "yes" -o "$withval" = "no"; then
66		AC_MSG_ERROR([No argument for --with-libssl-lib])
67	fi])
68AC_ARG_WITH(libssl-include,
69	[  --with-libssl-include=dir use libssl headers in dir],
70	[if test "$withval" = "yes" -o "$withval" = "no"; then
71		AC_MSG_ERROR([No argument for --with-libssl-include])
72	fi])
73
74	if test "X$with_libssl" != "X"; then
75	  if test "$with_libssl" != "yes" -a "$with_libssl" != no; then
76	    ac_cv_libssl_where_lib=$with_libssl/lib
77	    ac_cv_libssl_where_inc=$with_libssl/include
78	  fi
79	fi
80
81	if test "$with_libssl" != "no"; then
82	  if test "X$with_libssl_lib" != "X"; then
83	    ac_cv_libssl_where_lib=$with_libssl_lib
84	  fi
85	  if test "X$ac_cv_libssl_where_lib" = "X"; then
86	    CMU_LIBSSL_LIB_WHERE(/usr/local/lib/openssl /usr/lib/openssl /usr/local/lib /usr/lib)
87	  fi
88
89	  if test "X$with_libssl_include" != "X"; then
90	    ac_cv_libssl_where_inc=$with_libssl_include
91	  fi
92	  if test "X$ac_cv_libssl_where_inc" = "X"; then
93	    CMU_LIBSSL_INC_WHERE(/usr/local/include /usr/include)
94	  fi
95	fi
96
97	AC_MSG_CHECKING(whether to include libssl)
98	if test "X$ac_cv_libssl_where_lib" = "X" -a "X$ac_cv_libssl_where_inc" = "X"; then
99	  ac_cv_found_libssl=no
100	  AC_MSG_RESULT(no)
101	else
102	  ac_cv_found_libssl=yes
103	  AC_MSG_RESULT(yes)
104	  LIBSSL_INC_DIR=$ac_cv_libssl_where_inc
105	  LIBSSL_LIB_DIR=$ac_cv_libssl_where_lib
106	  LIBSSL_INC_FLAGS="-I${LIBSSL_INC_DIR}"
107	  LIBSSL_LIB_FLAGS="-L${LIBSSL_LIB_DIR} -lssl -lcrypto"
108	  if test "X$RPATH" = "X"; then
109		RPATH=""
110	  fi
111	  case "${host}" in
112	    *-*-linux*)
113	      if test "X$RPATH" = "X"; then
114	        RPATH="-Wl,-rpath,${LIBSSL_LIB_DIR}"
115	      else
116 		RPATH="${RPATH}:${LIBSSL_LIB_DIR}"
117	      fi
118	      ;;
119	    *-*-hpux*)
120	      if test "X$RPATH" = "X"; then
121	        RPATH="-Wl,+b${LIBSSL_LIB_DIR}"
122	      else
123		RPATH="${RPATH}:${LIBSSL_LIB_DIR}"
124	      fi
125	      ;;
126	    *-*-irix*)
127	      if test "X$RPATH" = "X"; then
128	        RPATH="-Wl,-rpath,${LIBSSL_LIB_DIR}"
129	      else
130		RPATH="${RPATH}:${LIBSSL_LIB_DIR}"
131	      fi
132	      ;;
133	    *-*-solaris2*)
134	      if test "$ac_cv_prog_gcc" = yes; then
135		if test "X$RPATH" = "X"; then
136		  RPATH="-Wl,-R${LIBSSL_LIB_DIR}"
137		else
138		  RPATH="${RPATH}:${LIBSSL_LIB_DIR}"
139		fi
140	      else
141	        RPATH="${RPATH} -R${LIBSSL_LIB_DIR}"
142	      fi
143	      ;;
144	  esac
145	  AC_SUBST(RPATH)
146	fi
147	AC_SUBST(LIBSSL_INC_DIR)
148	AC_SUBST(LIBSSL_LIB_DIR)
149	AC_SUBST(LIBSSL_INC_FLAGS)
150	AC_SUBST(LIBSSL_LIB_FLAGS)
151	])
152
153