source: trunk/third/cyrus-sasl/cmulocal/afs.m4 @ 17977

Revision 17977, 12.1 KB checked in by ghudson, 22 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r17976, which included commits to RCS files with non-trunk default branches.
Line 
1dnl afs.m4--AFS libraries, includes, and dependencies
2dnl $Id: afs.m4,v 1.1.1.1 2002-10-13 18:01:14 ghudson Exp $
3dnl Chaskiel Grundman
4dnl based on kerberos_v4.m4
5dnl Derrick Brashear
6dnl from KTH krb and Arla
7
8AC_DEFUN(CMU_AFS_INC_WHERE1, [
9AC_REQUIRE([AC_PROG_CC_GNU])
10cmu_save_CPPFLAGS=$CPPFLAGS
11CPPFLAGS="$cmu_save_CPPFLAGS -I$1"
12AC_TRY_COMPILE([#include <afs/param.h>],
13[#ifndef SYS_NAME
14choke me
15#endif
16int foo;],
17ac_cv_found_afs_inc=yes,
18ac_cv_found_afs_inc=no)
19CPPFLAGS=$cmu_save_CPPFLAGS
20])
21
22AC_DEFUN(CMU_AFS_LIB_WHERE1, [
23save_LIBS="$LIBS"
24save_LDFLAGS="$LDFLAGS"
25
26LIBS="-lauth $1/afs/util.a $LIB_SOCKET $LIBS"
27LDFLAGS="-L$1 -L$1/afs $LDFLAGS"
28dnl suppress caching
29AC_TRY_LINK([],[afsconf_Open();], ac_cv_found_afs_lib=yes, ac_cv_found_afs_lib=no)
30LIBS="$save_LIBS"
31LDFLAGS="$save_LDFLAGS"
32])
33
34AC_DEFUN(CMU_AFS_WHERE, [
35   for i in $1; do
36      AC_MSG_CHECKING(for AFS in $i)
37      CMU_AFS_INC_WHERE1("$i/include")
38      ac_cv_found_lwp_inc=$ac_cv_found_afs_inc
39      CMU_TEST_INCPATH($i/include, lwp)
40      ac_cv_found_afs_inc=$ac_cv_found_lwp_inc
41      if test "$ac_cv_found_afs_inc" = "yes"; then
42        CMU_AFS_LIB_WHERE1("$i/lib")
43        if test "$ac_cv_found_afs_lib" = "yes"; then
44          ac_cv_afs_where=$i
45          AC_MSG_RESULT(found)
46          break
47        else
48          AC_MSG_RESULT(not found)
49        fi
50      else
51        AC_MSG_RESULT(not found)
52      fi
53    done
54])
55
56AC_DEFUN(CMU_AFS, [
57AC_REQUIRE([CMU_SOCKETS])
58AC_REQUIRE([CMU_LIBSSL])
59AC_ARG_WITH(AFS,
60        [  --with-afs=PREFIX      Compile with AFS support],
61        [if test "X$with_AFS" = "X"; then
62                with_AFS=yes
63        fi])
64
65        if test "X$with_AFS" != "X"; then
66          ac_cv_afs_where=$with_AFS
67        fi
68        if test "X$ac_cv_afs_where" = "X"; then
69          CMU_AFS_WHERE(/usr/afsws /usr/local /usr/athena)
70        fi
71
72        AC_MSG_CHECKING(whether to include AFS)
73        if test "X$ac_cv_afs_where" = "Xno" -o "X$ac_cv_afs_where" = "X"; then
74          ac_cv_found_afs=no
75          AC_MSG_RESULT(no)
76        else
77          ac_cv_found_afs=yes
78          AC_MSG_RESULT(yes)
79          AFS_INC_DIR="$ac_cv_afs_where/include"
80          AFS_LIB_DIR="$ac_cv_afs_where/lib"
81          AFS_TOP_DIR="$ac_cv_afs_where"
82          AFS_INC_FLAGS="-I${AFS_INC_DIR}"
83          AFS_LIB_FLAGS="-L${AFS_LIB_DIR} -L${AFS_LIB_DIR}/afs"
84          cmu_save_LIBS="$LIBS"
85          cmu_save_CPPFLAGS="$CPPFLAGS"
86          CPPFLAGS="$CPPFLAGS ${AFS_INC_FLAGS}"
87          cmu_save_LDFLAGS="$LDFLAGS"
88          LDFLAGS="$cmu_save_LDFLAGS ${AFS_LIB_FLAGS}"
89                       
90          AC_CHECK_HEADER(afs/stds.h)
91
92          AC_MSG_CHECKING([if libdes is needed])
93          AC_TRY_LINK([],[des_quad_cksum();],AFS_DES_LIB="",AFS_DES_LIB="maybe")
94          if test "X$AFS_DES_LIB" != "X"; then
95              LIBS="$cmu_save_LIBS -ldes"
96              AC_TRY_LINK([], [des_quad_cksum();],AFS_DES_LIB="yes")
97              if test "X$AFS_DES_LIB" = "Xyes"; then
98                  AC_MSG_RESULT([yes])
99                  AFS_LIBDES="-ldes"
100                  AFS_LIBDESA="${AFS_LIB_DIR}/libdes.a"
101              else
102                  LIBS="$cmu_save_LIBS $LIBSSL_LIB_FLAGS"
103                  AC_TRY_LINK([],
104                  [des_quad_cksum();],AFS_DES_LIB="libcrypto")
105                  if test "X$AFS_DES_LIB" = "Xlibcrypto"; then
106                      AC_MSG_RESULT([libcrypto])
107                      AFS_LIBDES="$LIBSSL_LIB_FLAGS"
108                      AFS_LIBDESA="$LIBSSL_LIB_FLAGS"
109                  else
110                      AC_MSG_RESULT([unknown])
111                      AC_MSG_ERROR([Could not use -ldes])
112                  fi
113              fi
114          else
115             AC_MSG_RESULT([no])
116          fi
117
118
119          AFS_CLIENT_LIBS_STATIC="${AFS_LIB_DIR}/afs/libvolser.a ${AFS_LIB_DIR}/afs/libvldb.a ${AFS_LIB_DIR}/afs/libkauth.a ${AFS_LIB_DIR}/afs/libprot.a ${AFS_LIB_DIR}/libubik.a ${AFS_LIB_DIR}/afs/libauth.a ${AFS_LIB_DIR}/librxkad.a ${AFS_LIB_DIR}/librx.a ${AFS_LIB_DIR}/afs/libsys.a ${AFS_LIB_DIR}/librx.a ${AFS_LIB_DIR}/liblwp.a ${AFS_LIBDESA} ${AFS_LIB_DIR}/afs/libcmd.a ${AFS_LIB_DIR}/afs/libcom_err.a ${AFS_LIB_DIR}/afs/util.a"
120          AFS_KTC_LIBS_STATIC="${AFS_LIB_DIR}/afs/libauth.a ${AFS_LIB_DIR}/afs/libsys.a ${AFS_LIB_DIR}/librx.a ${AFS_LIB_DIR}/liblwp.a ${AFS_LIBDESA} ${AFS_LIB_DIR}/afs/libcom_err.a ${AFS_LIB_DIR}/afs/util.a"
121          AFS_CLIENT_LIBS="-lvolser -lvldb -lkauth -lprot -lubik -lauth -lrxkad -lrx ${AFS_LIB_DIR}/afs/libsys.a -lrx -llwp ${AFS_LIBDES} -lcmd -lcom_err ${AFS_LIB_DIR}/afs/util.a"
122          AFS_RX_LIBS="-lauth -lrxkad -lrx ${AFS_LIB_DIR}/afs/libsys.a -lrx -llwp ${AFS_LIBDES} -lcmd -lcom_err ${AFS_LIB_DIR}/afs/util.a"
123          AFS_KTC_LIBS="-lauth ${AFS_LIB_DIR}/afs/libsys.a -lrx -llwp ${AFS_LIBDES} -lcom_err ${AFS_LIB_DIR}/afs/util.a"
124          LIBS="$cmu_save_LIBS"
125          AC_CHECK_FUNC(flock)
126          LIBS="$cmu_save_LIBS ${AFS_CLIENT_LIBS} ${LIB_SOCKET}"
127          if test "X$ac_cv_func_flock" != "Xyes"; then
128             AC_MSG_CHECKING([if AFS needs flock])
129             AC_TRY_LINK([#include <afs/param.h>
130#ifdef HAVE_AFS_STDS_H
131#include <afs/stds.h>
132#endif
133#include <ubik.h>
134#include <afs/cellconfig.h>
135#include <afs/auth.h>
136#include <afs/volser.h>
137struct ubik_client * cstruct;
138int sigvec() {return 0;}
139extern int UV_SetSecurity();],
140             [vsu_ClientInit(1,"","",0,
141                             &cstruct,UV_SetSecurity)],
142             AFS_FLOCK=no,AFS_FLOCK=yes)
143             if test $AFS_FLOCK = "no"; then
144                AC_MSG_RESULT([no])
145             else
146               AC_MSG_RESULT([yes])
147               LDFLAGS="$LDFLAGS -L/usr/ucblib"
148               AC_CHECK_LIB(ucb, flock,:, [AC_CHECK_LIB(BSD, flock)])
149             fi
150          fi
151          LIBS="$cmu_save_LIBS"
152          AC_CHECK_FUNC(sigvec)
153          LIBS="$cmu_save_LIBS ${AFS_CLIENT_LIBS} ${LIB_SOCKET}"
154          if test "X$ac_cv_func_sigvec" != "Xyes"; then
155             AC_MSG_CHECKING([if AFS needs sigvec])
156             AC_TRY_LINK([#include <afs/param.h>
157#ifdef HAVE_AFS_STDS_H
158#include <afs/stds.h>
159#endif
160#include <ubik.h>
161#include <afs/cellconfig.h>
162#include <afs/auth.h>
163#include <afs/volser.h>
164struct ubik_client * cstruct;
165int flock() {return 0;}
166extern int UV_SetSecurity();],
167             [vsu_ClientInit(1,"","",0,
168                             &cstruct,UV_SetSecurity)],
169             AFS_SIGVEC=no,AFS_SIGVEC=yes)
170             if test $AFS_SIGVEC = "no"; then
171                AC_MSG_RESULT([no])
172             else
173               AC_MSG_RESULT([yes])
174               LDFLAGS="$LDFLAGS -L/usr/ucblib"
175               AC_CHECK_LIB(ucb, sigvec,:,[AC_CHECK_LIB(BSD, sigvec)])
176             fi
177          fi
178          if test "$ac_cv_lib_ucb_flock" = "yes" -o "$ac_cv_lib_ucb_sigvec" = "yes"; then
179             AFS_LIB_FLAGS="${AFS_LIB_FLAGS} -L/usr/ucblib -R/usr/ucblib"
180          fi
181          if test "$ac_cv_lib_ucb_flock" = "yes" -o "$ac_cv_lib_ucb_sigvec" = "yes"; then
182             AFS_BSD_LIB="-lucb"
183          elif test "$ac_cv_lib_BSD_flock" = "yes" -o "$ac_cv_lib_BSD_sigvec" = "yes"; then
184             AFS_BSD_LIB="-lBSD"
185          fi
186          if test "X$AFS_BSD_LIB" != "X" ; then
187                AFS_CLIENT_LIBS_STATIC="$AFS_CLIENT_LIBS_STATIC $AFS_BSD_LIB"
188                AFS_KTC_LIBS_STATIC="$AFS_KTC_LIBS_STATIC $AFS_BSD_LIB"
189                AFS_CLIENT_LIBS="$AFS_CLIENT_LIBS $AFS_BSD_LIB"
190                AFS_RX_LIBS="$AFS_CLIENT_LIBS $AFS_BSD_LIB"
191                AFS_KTC_LIBS="$AFS_KTC_LIBS $AFS_BSD_LIB"
192          fi
193          LIBS="$cmu_save_LIBS $AFS_CLIENT_LIBS ${LIB_SOCKET}"
194          AC_CHECK_FUNC(des_pcbc_init)
195          if test "X$ac_cv_func_des_pcbc_init" != "Xyes"; then
196           AC_CHECK_LIB(descompat, des_pcbc_init, AFS_DESCOMPAT_LIB="-ldescompat")
197           if test "X$AFS_DESCOMPAT_LIB" != "X" ; then
198                AFS_CLIENT_LIBS_STATIC="$AFS_CLIENT_LIBS_STATIC $AFS_DESCOMPAT_LIB"
199                AFS_KTC_LIBS_STATIC="$AFS_KTC_LIBS_STATIC $AFS_DESCOMPAT_LIB"
200                AFS_CLIENT_LIBS="$AFS_CLIENT_LIBS $AFS_DESCOMPAT_LIB"
201                AFS_KTC_LIBS="$AFS_KTC_LIBS $AFS_DESCOMPAT_LIB"
202           else
203
204           AC_MSG_CHECKING([if rxkad needs des_pcbc_init])
205           AC_TRY_LINK(,[tkt_DecodeTicket();],RXKAD_PROBLEM=no,RXKAD_PROBLEM=maybe)
206            if test "$RXKAD_PROBLEM" = "maybe"; then
207              AC_TRY_LINK([int des_pcbc_init() { return 0;}],
208              [tkt_DecodeTicket();],RXKAD_PROBLEM=yes,RXKAD_PROBLEM=error)
209              if test "$RXKAD_PROBLEM" = "yes"; then
210                    AC_MSG_RESULT([yes])
211                    AC_MSG_ERROR([cannot use rxkad])
212              else
213                    AC_MSG_RESULT([unknown])       
214                    AC_MSG_ERROR([Unknown error testing rxkad])
215              fi
216            else
217              AC_MSG_RESULT([no])
218            fi
219           fi
220          fi
221
222          AC_MSG_CHECKING([if libaudit is needed])
223          AFS_LIBAUDIT=""
224          LIBS="$cmu_save_LIBS $AFS_CLIENT_LIBS ${LIB_SOCKET}"
225          AC_TRY_LINK([#include <afs/param.h>
226#ifdef HAVE_AFS_STDS_H
227#include <afs/stds.h>
228#endif
229#include <afs/cellconfig.h>
230#include <afs/auth.h>],
231          [afsconf_SuperUser();],AFS_AUDIT_LIB="",AFS_AUDIT_LIB="maybe")
232          if test "X$AFS_AUDIT_LIB" != "X"; then
233          LIBS="$cmu_save_LIBS -lvolser -lvldb -lkauth -lprot -lubik -lauth -laudit -lrxkad -lrx ${AFS_LIB_DIR}/afs/libsys.a -lrx -llwp ${AFS_LIBDES} -lcmd -lcom_err ${AFS_LIB_DIR}/afs/util.a $AFS_BSD_LIB $AFS_DESCOMPAT_LIB $LIB_SOCKET"
234             AC_TRY_LINK([#include <afs/param.h>
235#ifdef HAVE_AFS_STDS_H
236#include <afs/stds.h>
237#endif
238#include <afs/cellconfig.h>
239#include <afs/auth.h>],
240             [afsconf_SuperUser();],AFS_AUDIT_LIB="yes")
241             if test "X$AFS_AUDIT_LIB" = "Xyes"; then
242                 AC_MSG_RESULT([yes])
243                 AFS_LIBAUDIT="-laudit"
244                 AFS_CLIENT_LIBS_STATIC="${AFS_LIB_DIR}/afs/libvolser.a ${AFS_LIB_DIR}/afs/libvldb.a ${AFS_LIB_DIR}/afs/libkauth.a ${AFS_LIB_DIR}/afs/libprot.a ${AFS_LIB_DIR}/libubik.a ${AFS_LIB_DIR}/afs/libauth.a ${AFS_LIB_DIR}/afs/libaudit.a ${AFS_LIB_DIR}/librxkad.a ${AFS_LIB_DIR}/librx.a ${AFS_LIB_DIR}/afs/libsys.a ${AFS_LIB_DIR}/librx.a ${AFS_LIB_DIR}/liblwp.a ${AFS_LIBDESA} ${AFS_LIB_DIR}/afs/libcmd.a ${AFS_LIB_DIR}/afs/libcom_err.a ${AFS_LIB_DIR}/afs/util.a"
245                 AFS_CLIENT_LIBS="-lvolser -lvldb -lkauth -lprot -lubik -lauth -laudit -lrxkad -lrx ${AFS_LIB_DIR}/afs/libsys.a -lrx -llwp ${AFS_LIBDES} -lcmd -lcom_err ${AFS_LIB_DIR}/afs/util.a $AFS_BSD_LIB $AFS_DESCOMPAT_LIB"
246                 AFS_RX_LIBS="-lauth -laudit -lrxkad -lrx ${AFS_LIB_DIR}/afs/libsys.a -lrx -llwp ${AFS_LIBDES} -lcmd -lcom_err ${AFS_LIB_DIR}/afs/util.a $AFS_BSD_LIB $AFS_DESCOMPAT_LIB"
247             else
248                 AC_MSG_RESULT([unknown])
249                 AC_MSG_ERROR([Could not use -lauth while testing for -laudit])
250             fi
251          else
252             AC_MSG_RESULT([no])
253          fi
254
255          AC_CHECK_FUNCS(VL_ProbeServer)
256          AC_MSG_CHECKING([if new-style afs_ integer types are defined])
257          AC_CACHE_VAL(ac_cv_afs_int32,
258dnl The next few lines contain a quoted argument to egrep
259dnl It is critical that there be no leading or trailing whitespace
260dnl or newlines
261[AC_EGREP_CPP(dnl
262changequote(<<,>>)dnl
263<<(^|[^a-zA-Z_0-9])afs_int32[^a-zA-Z_0-9]>>dnl
264changequote([,]), [#include <afs/param.h>
265#ifdef HAVE_AFS_STDS_H
266#include <afs/stds.h>
267#endif],
268ac_cv_afs_int32=yes, ac_cv_afs_int32=no)])
269          AC_MSG_RESULT($ac_cv_afs_int32)
270          if test $ac_cv_afs_int32 = yes ; then
271            AC_DEFINE(HAVE_AFS_INT32,, [AFS provides new "unambiguous" type names])
272          else
273            AC_DEFINE(afs_int16, int16, [it's a type definition])
274            AC_DEFINE(afs_int32, int32, [it's a type definition])
275            AC_DEFINE(afs_uint16, u_int16, [it's a type definition])
276            AC_DEFINE(afs_uint32, u_int32, [it's a type definition])
277          fi
278
279          CPPFLAGS="${cmu_save_CPPFLAGS}"
280          LDFLAGS="${cmu_save_LDFLAGS}"
281          LIBS="${cmu_save_LIBS}"
282          AC_DEFINE(AFS_ENV,, [Use AFS. (find what needs this and nuke it)])
283          AC_DEFINE(AFS,, [Use AFS. (find what needs this and nuke it)])
284          AC_SUBST(AFS_CLIENT_LIBS_STATIC)
285          AC_SUBST(AFS_KTC_LIBS_STATIC)
286          AC_SUBST(AFS_CLIENT_LIBS)
287          AC_SUBST(AFS_RX_LIBS)
288          AC_SUBST(AFS_KTC_LIBS)
289          AC_SUBST(AFS_INC_FLAGS)
290          AC_SUBST(AFS_LIB_FLAGS)
291          AC_SUBST(AFS_TOP_DIR)
292          AC_SUBST(AFS_LIBAUDIT)
293          AC_SUBST(AFS_LIBDES)
294          AC_SUBST(AFS_LIBDESA)
295        fi
296        ])
297
298AC_DEFUN(CMU_NEEDS_AFS,
299[AC_REQUIRE([CMU_AFS])
300if test "$ac_cv_found_afs" != "yes"; then
301        AC_ERROR([Cannot continue without AFS])
302fi])
Note: See TracBrowser for help on using the repository browser.