*** empty log message ***
[gnutls.git] / opencdk.m4
blobca51e8075a7195e672558ce1d7a45582c8fcb50c
1 dnl Autoconf macros for opencdk
2 dnl $id$
4 # Configure paths for LIBOPENCDK
5 # Shamelessly stolen from the one of XDELTA by Owen Taylor
6 # Werner Koch   99-12-09
7 # Modified for OpenCDK
8 # Timo Schulz   02-04-06
10 dnl AM_PATH_LIBOPENCDK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
11 dnl Test for libopencdk, and define CDK_CFLAGS and CDK_LIBS
12 dnl
13 AC_DEFUN(AM_PATH_LIBOPENCDK,
14 [dnl
15 dnl Get the cflags and libraries from the opencdk-config script
16 dnl
17 AC_ARG_WITH(libopencdk-prefix,
18           [  --with-libopencdk-prefix=PFX   Prefix where libopencdk is installed (optional)],
19           libopencdk_config_prefix="$withval", libopencdk_config_prefix="")
20 AC_ARG_ENABLE(libopencdktest,
21           [  --disable-libopencdktest    Do not try to compile and run a test libopencdk program],
22           , enable_libopencdktest=yes)
24   if test x$libopencdk_config_prefix != x ; then
25      if test x${LIBOPENCDK_CONFIG+set} != xset ; then
26         LIBOPENCDK_CONFIG=$libopencdk_config_prefix/bin/opencdk-config
27      fi
28   fi
30   AC_PATH_PROG(LIBOPENCDK_CONFIG, opencdk-config, no)
31   min_libopencdk_version=ifelse([$1], ,1.1.0,$1)
32   AC_MSG_CHECKING(for libopencdk - version >= $min_libopencdk_version)
33   no_libopencdk=""
34   if test "$LIBOPENCDK_CONFIG" = "no" ; then
35     no_libopencdk=yes
36   else
37     LIBOPENCDK_CFLAGS=`$LIBOPENCDK_CONFIG $libopencdk_config_args --cflags`
38     LIBOPENCDK_LIBS=`$LIBOPENCDK_CONFIG $libopencdk_config_args --libs`
39     libopencdk_config_version=`$LIBOPENCDK_CONFIG $libopencdk_config_args --version`
40     if test "x$enable_libopencdktest" = "xyes" ; then
41       ac_save_CFLAGS="$CFLAGS"
42       ac_save_LIBS="$LIBS"
43       CFLAGS="$CFLAGS $LIBOPENCDK_CFLAGS"
44       LIBS="$LIBS $LIBOPENCDK_LIBS"
45 dnl
46 dnl Now check if the installed libopencdk is sufficiently new. Also sanity
47 dnl checks the results of opencdk-config to some extent
48 dnl
49       rm -f conf.libopencdktest
50       AC_TRY_RUN([
51 #include <stdio.h>
52 #include <stdlib.h>
53 #include <string.h>
54 #include <opencdk.h>
56 int
57 main ()
59     system ("touch conf.libopencdktest");
61     if( strcmp( cdk_check_version(NULL), "$libopencdk_config_version" ) )
62     {
63       printf("\n*** 'opencdk-config --version' returned %s, but LIBOPENCDK (%s)\n",
64              "$libopencdk_config_version", cdk_check_version(NULL) );
65       printf("*** was found! If opencdk-config was correct, then it is best\n");
66       printf("*** to remove the old version of LIBOPENCDK. You may also be able to fix the error\n");
67       printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
68       printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
69       printf("*** required on your system.\n");
70       printf("*** If opencdk-config was wrong, set the environment variable LIBOPENCDK_CONFIG\n");
71       printf("*** to point to the correct copy of opencdk-config, and remove the file config.cache\n");
72       printf("*** before re-running configure\n");
73     }
74     else if ( strcmp(cdk_check_version(NULL), OPENCDK_VERSION ) )
75     {
76       printf("\n*** LIBOPENCDK header file (version %s) does not match\n", OPENCDK_VERSION);
77       printf("*** library (version %s)\n", cdk_check_version(NULL) );
78     }
79     else
80     {
81       if ( cdk_check_version( "$min_libopencdk_version" ) )
82       {
83         return 0;
84       }
85      else
86       {
87         printf("no\n*** An old version of LIBOPENCDK (%s) was found.\n",
88                 cdk_check_version(NULL) );
89         printf("*** You need a version of LIBOPENCDK newer than %s. The latest version of\n",
90                "$min_libopencdk_version" );
91         printf("*** LIBOPENCDK is always available from ftp://ftp.gnutls.org/pub/gnutls/opencdk/.\n");
92         printf("*** \n");
93         printf("*** If you have already installed a sufficiently new version, this error\n");
94         printf("*** probably means that the wrong copy of the opencdk-config shell script is\n");
95         printf("*** being found. The easiest way to fix this is to remove the old version\n");
96         printf("*** of LIBOPENCDK, but you can also set the LIBOPENCDK_CONFIG environment to point to the\n");
97         printf("*** correct copy of opencdk-config. (In this case, you will have to\n");
98         printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
99         printf("*** so that the correct libraries are found at run-time))\n");
100       }
101     }
102   return 1;
104 ],, no_libopencdk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
105        CFLAGS="$ac_save_CFLAGS"
106        LIBS="$ac_save_LIBS"
107      fi
108   fi
109   if test "x$no_libopencdk" = x ; then
110      AC_MSG_RESULT(yes)
111      ifelse([$2], , :, [$2])
112   else
113      if test -f conf.libopencdktest ; then
114         :
115      else
116         AC_MSG_RESULT(no)
117      fi
118      if test "$LIBOPENCDK_CONFIG" = "no" ; then
119        echo "*** The opencdk-config script installed by LIBOPENCDK could not be found"
120        echo "*** If LIBOPENCDK was installed in PREFIX, make sure PREFIX/bin is in"
121        echo "*** your path, or set the LIBOPENCDK_CONFIG environment variable to the"
122        echo "*** full path to opencdk-config."
123      else
124        if test -f conf.libopencdktest ; then
125         :
126        else
127           echo "*** Could not run libopencdk test program, checking why..."
128           CFLAGS="$CFLAGS $LIBOPENCDK_CFLAGS"
129           LIBS="$LIBS $LIBOPENCDK_LIBS"
130           AC_TRY_LINK([
131 #include <stdio.h>
132 #include <stdlib.h>
133 #include <string.h>
134 #include <opencdk.h>
135 ],      [ return !!cdk_check_version(NULL); ],
136         [ echo "*** The test program compiled, but did not run. This usually means"
137           echo "*** that the run-time linker is not finding LIBOPENCDK or finding the wrong"
138           echo "*** version of LIBOPENCDK. If it is not finding LIBOPENCDK, you'll need to set your"
139           echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
140           echo "*** to the installed location  Also, make sure you have run ldconfig if that"
141           echo "*** is required on your system"
142           echo "***"
143           echo "*** If you have an old version installed, it is best to remove it, although"
144           echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
145           echo "***" ],
146         [ echo "*** The test program failed to compile or link. See the file config.log for the"
147           echo "*** exact error that occured. This usually means LIBOPENCDK was incorrectly installed"
148           echo "*** or that you have moved LIBOPENCDK since it was installed. In the latter case, you"
149           echo "*** may want to edit the opencdk-config script: $LIBOPENCDK_CONFIG" ])
150           CFLAGS="$ac_save_CFLAGS"
151           LIBS="$ac_save_LIBS"
152        fi
153      fi
154      LIBOPENCDK_CFLAGS=""
155      LIBOPENCDK_LIBS=""
156      ifelse([$3], , :, [$3])
157   fi
158   AC_SUBST(LIBOPENCDK_CFLAGS)
159   AC_SUBST(LIBOPENCDK_LIBS)
160   rm -f conf.libopencdktest
163 dnl *-*wedit:notab*-*  Please keep this as the last line.