*** empty log message ***
[gnutls.git] / opencdk.m4
blob89687c9102fbe16495014072880c87af420e8e49
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("*** (It is distributed along with GnuPG).\n");
93         printf("*** \n");
94         printf("*** If you have already installed a sufficiently new version, this error\n");
95         printf("*** probably means that the wrong copy of the opencdk-config shell script is\n");
96         printf("*** being found. The easiest way to fix this is to remove the old version\n");
97         printf("*** of LIBOPENCDK, but you can also set the LIBOPENCDK_CONFIG environment to point to the\n");
98         printf("*** correct copy of opencdk-config. (In this case, you will have to\n");
99         printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
100         printf("*** so that the correct libraries are found at run-time))\n");
101       }
102     }
103   return 1;
105 ],, no_libopencdk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
106        CFLAGS="$ac_save_CFLAGS"
107        LIBS="$ac_save_LIBS"
108      fi
109   fi
110   if test "x$no_libopencdk" = x ; then
111      AC_MSG_RESULT(yes)
112      ifelse([$2], , :, [$2])
113   else
114      if test -f conf.libopencdktest ; then
115         :
116      else
117         AC_MSG_RESULT(no)
118      fi
119      if test "$LIBOPENCDK_CONFIG" = "no" ; then
120        echo "*** The opencdk-config script installed by LIBOPENCDK could not be found"
121        echo "*** If LIBOPENCDK was installed in PREFIX, make sure PREFIX/bin is in"
122        echo "*** your path, or set the LIBOPENCDK_CONFIG environment variable to the"
123        echo "*** full path to opencdk-config."
124      else
125        if test -f conf.libopencdktest ; then
126         :
127        else
128           echo "*** Could not run libopencdk test program, checking why..."
129           CFLAGS="$CFLAGS $LIBOPENCDK_CFLAGS"
130           LIBS="$LIBS $LIBOPENCDK_LIBS"
131           AC_TRY_LINK([
132 #include <stdio.h>
133 #include <stdlib.h>
134 #include <string.h>
135 #include <opencdk.h>
136 ],      [ return !!cdk_check_version(NULL); ],
137         [ echo "*** The test program compiled, but did not run. This usually means"
138           echo "*** that the run-time linker is not finding LIBOPENCDK or finding the wrong"
139           echo "*** version of LIBOPENCDK. If it is not finding LIBOPENCDK, you'll need to set your"
140           echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
141           echo "*** to the installed location  Also, make sure you have run ldconfig if that"
142           echo "*** is required on your system"
143           echo "***"
144           echo "*** If you have an old version installed, it is best to remove it, although"
145           echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
146           echo "***" ],
147         [ echo "*** The test program failed to compile or link. See the file config.log for the"
148           echo "*** exact error that occured. This usually means LIBOPENCDK was incorrectly installed"
149           echo "*** or that you have moved LIBOPENCDK since it was installed. In the latter case, you"
150           echo "*** may want to edit the opencdk-config script: $LIBOPENCDK_CONFIG" ])
151           CFLAGS="$ac_save_CFLAGS"
152           LIBS="$ac_save_LIBS"
153        fi
154      fi
155      LIBOPENCDK_CFLAGS=""
156      LIBOPENCDK_LIBS=""
157      ifelse([$3], , :, [$3])
158   fi
159   AC_SUBST(LIBOPENCDK_CFLAGS)
160   AC_SUBST(LIBOPENCDK_LIBS)
161   rm -f conf.libopencdktest
164 dnl *-*wedit:notab*-*  Please keep this as the last line.