|
|
|
|
@ -5,8 +5,8 @@
|
|
|
|
|
dnl AM_PATH_OPENHBCI([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
|
|
|
|
|
dnl Test for OPENHBCI, and define OPENHBCI_CFLAGS, OPENHBCI_CXXFLAGS and OPENHBCI_LIBS
|
|
|
|
|
dnl
|
|
|
|
|
AC_DEFUN(AM_PATH_OPENHBCI,
|
|
|
|
|
[dnl
|
|
|
|
|
AC_DEFUN(AM_PATH_OPENHBCI, [
|
|
|
|
|
dnl
|
|
|
|
|
dnl Get the c[xx]flags and libraries from openhbci-config
|
|
|
|
|
dnl
|
|
|
|
|
AC_MSG_CHECKING(for OpenHBCI)
|
|
|
|
|
@ -34,8 +34,6 @@ if test -x "${hbci_config}" ; then
|
|
|
|
|
OPENHBCI_LIBS="`${hbci_config} --libraries`"
|
|
|
|
|
OPENHBCI_CFLAGS="`${hbci_config} --includes`"
|
|
|
|
|
OPENHBCI_CXXFLAGS="`${hbci_config} --includes`"
|
|
|
|
|
AS_SCRUB_INCLUDE(OPENHBCI_CFLAGS)
|
|
|
|
|
AS_SCRUB_INCLUDE(OPENHBCI_CXXFLAGS)
|
|
|
|
|
else
|
|
|
|
|
AC_MSG_ERROR([
|
|
|
|
|
Could not find bin/openhbci-config in prefix ${OPENHBCI_PREFIX}.
|
|
|
|
|
@ -44,13 +42,14 @@ else
|
|
|
|
|
fi
|
|
|
|
|
AC_MSG_RESULT($hbci_dir)
|
|
|
|
|
|
|
|
|
|
min_openhbci_version=ifelse([$1], ,0.9.0,$1)
|
|
|
|
|
min_openhbci_version=ifelse([$1], ,0.9.0.0,$1)
|
|
|
|
|
AC_MSG_CHECKING(for OpenHBCI - version >= $min_openhbci_version)
|
|
|
|
|
AC_LANG(C++)
|
|
|
|
|
|
|
|
|
|
if test "x$enable_openhbcitest" = "xyes" ; then
|
|
|
|
|
ac_save_CFLAGS="$CFLAGS"
|
|
|
|
|
ac_save_CXXFLAGS="$CXXFLAGS"
|
|
|
|
|
ac_save_LIBS="$LIBS"
|
|
|
|
|
CFLAGS="$CFLAGS $OPENHBCI_CFLAGS"
|
|
|
|
|
CXXFLAGS="$CXXFLAGS $OPENHBCI_CXXFLAGS"
|
|
|
|
|
LIBS="$OPENHBCI_LIBS $LIBS"
|
|
|
|
|
dnl
|
|
|
|
|
dnl Now check if the installed OpenHBCI is sufficiently new. (Also sanity
|
|
|
|
|
@ -63,63 +62,97 @@ dnl
|
|
|
|
|
#include <string.h>
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
|
|
|
|
|
#ifndef OPENHBCI_VERSION_BUILD
|
|
|
|
|
# define OPENHBCI_VERSION_BUILD 0
|
|
|
|
|
#endif
|
|
|
|
|
int
|
|
|
|
|
main ()
|
|
|
|
|
{
|
|
|
|
|
int major, minor, micro;
|
|
|
|
|
int getmajor, getminor, getmicro;
|
|
|
|
|
int major, minor, micro, build;
|
|
|
|
|
int getmajor, getminor, getmicro, getbuild;
|
|
|
|
|
char *tmp_version;
|
|
|
|
|
|
|
|
|
|
system ("touch conf.openhbcitest");
|
|
|
|
|
|
|
|
|
|
/* HP/UX 9 writes to sscanf strings */
|
|
|
|
|
tmp_version = strdup("$min_openhbci_version");
|
|
|
|
|
if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
|
|
|
|
|
printf("%s, bad version string\n", "$min_openhbci_version");
|
|
|
|
|
exit(1);
|
|
|
|
|
build=0;
|
|
|
|
|
if (sscanf(tmp_version, "%d.%d.%d.%d", &major, &minor, µ, &build) != 4)
|
|
|
|
|
{
|
|
|
|
|
build = 0;
|
|
|
|
|
if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3)
|
|
|
|
|
{
|
|
|
|
|
micro = 0;
|
|
|
|
|
if (sscanf(tmp_version, "%d.%d", &major, &minor) != 2)
|
|
|
|
|
{
|
|
|
|
|
minor = 0;
|
|
|
|
|
if (sscanf(tmp_version, "%d", &major) != 1)
|
|
|
|
|
{
|
|
|
|
|
printf("\n*** AM PATH OPENHBCI: bad version string: %s\n", "$min_openhbci_version");
|
|
|
|
|
exit(1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HBCI_Hbci_libraryVersion(&getmajor, &getminor, &getmicro);
|
|
|
|
|
/* in C: HBCI_Hbci_libraryVersion(&getmajor, &getminor, &getmicro); */
|
|
|
|
|
#if ((OPENHBCI_VERSION_MAJOR>0) || (OPENHBCI_VERSION_MINOR>9) || \
|
|
|
|
|
(OPENHBCI_VERSION_PATCHLEVEL>9) || (OPENHBCI_VERSION_BUILD>8))
|
|
|
|
|
/* Four-argument libraryVersion() was introduced with 0.9.9.9. */
|
|
|
|
|
HBCI::Hbci::libraryVersion(getmajor, getminor, getmicro, getbuild);
|
|
|
|
|
#else
|
|
|
|
|
HBCI::Hbci::libraryVersion(getmajor, getminor, getmicro);
|
|
|
|
|
getbuild = OPENHBCI_VERSION_BUILD;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
if ((getmajor != OPENHBCI_VERSION_MAJOR) ||
|
|
|
|
|
(getminor != OPENHBCI_VERSION_MINOR) ||
|
|
|
|
|
(getmicro != OPENHBCI_VERSION_PATCHLEVEL))
|
|
|
|
|
(getmicro != OPENHBCI_VERSION_PATCHLEVEL) ||
|
|
|
|
|
(getbuild != OPENHBCI_VERSION_BUILD))
|
|
|
|
|
{
|
|
|
|
|
printf("*** OpenHBCI header files (version %d.%d.%d) do not match\n",
|
|
|
|
|
printf("\n*** OpenHBCI header files openhbci.h "
|
|
|
|
|
"(version %d.%d.%d build %d) do not match\n",
|
|
|
|
|
OPENHBCI_VERSION_MAJOR,
|
|
|
|
|
OPENHBCI_VERSION_MINOR,
|
|
|
|
|
OPENHBCI_VERSION_PATCHLEVEL);
|
|
|
|
|
printf("*** installed library (version %d.%d.%d)\n",
|
|
|
|
|
getmajor, getminor, getmicro);
|
|
|
|
|
OPENHBCI_VERSION_PATCHLEVEL,
|
|
|
|
|
OPENHBCI_VERSION_BUILD);
|
|
|
|
|
printf("*** installed library libopenhbci.so "
|
|
|
|
|
"(version %d.%d.%d build %d)\n",
|
|
|
|
|
getmajor, getminor, getmicro, getbuild);
|
|
|
|
|
exit(1);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if ((getmajor > major) ||
|
|
|
|
|
((getmajor == major) && (getminor > minor)) ||
|
|
|
|
|
((getmajor == major) && (getminor == minor) && (getmicro >= micro)))
|
|
|
|
|
((getmajor == major) && (getminor == minor) && (getmicro > micro)) ||
|
|
|
|
|
((getmajor == major) && (getminor == minor) &&
|
|
|
|
|
(getmicro == micro) && (getbuild >= build)))
|
|
|
|
|
{
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
printf("\n*** An old version of OpenHBCI (%d.%d.%d) was found.\n",
|
|
|
|
|
getmajor, getminor, getmicro);
|
|
|
|
|
printf("*** You need OpenHBCI in version %d.%d.%d or newer. The latest version\n",
|
|
|
|
|
major, minor, micro);
|
|
|
|
|
printf("*** of OpenHBCI is always available from http://www.openhbci.de.\n");
|
|
|
|
|
printf("***\n");
|
|
|
|
|
printf("*** If you have already installed a sufficiently new version, this error\n");
|
|
|
|
|
printf("*** probably means that you need to specify the right path by\n");
|
|
|
|
|
printf("*** --with-openhbci-prefix=PATH. (Also, check that your LD_LIBRARY_PATH\n");
|
|
|
|
|
printf("*** enviroment variable is correct, or edit /etc/ld.so.conf\n");
|
|
|
|
|
printf("*** so that the correct libraries are found at run-time))\n");
|
|
|
|
|
printf("\n*** An old version of OpenHBCI (%d.%d.%d build %d) was found.\n",
|
|
|
|
|
getmajor, getminor, getmicro, getbuild);
|
|
|
|
|
printf("*** You need OpenHBCI in version %d.%d.%d build %d or newer. The latest\n",
|
|
|
|
|
major, minor, micro, build);
|
|
|
|
|
printf("*** version of OpenHBCI is always available from http://www.openhbci.de.\n");
|
|
|
|
|
if (build > 0)
|
|
|
|
|
printf("*** Note: The non-zero build number '%d' indicates that the latest CVS \n"
|
|
|
|
|
"*** version of openhbci is required.\n", build);
|
|
|
|
|
printf("***\n"
|
|
|
|
|
"*** If you have already installed a sufficiently new version, this error\n"
|
|
|
|
|
"*** probably means that you need to specify the right path by\n"
|
|
|
|
|
"*** --with-openhbci-prefix=PATH. (Also, check that your LD_LIBRARY_PATH\n"
|
|
|
|
|
"*** enviroment variable is correct, or edit /etc/ld.so.conf\n"
|
|
|
|
|
"*** so that the correct libraries are found at run-time)\n");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
],, no_openhbci=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
|
|
|
|
|
CFLAGS="$ac_save_CFLAGS"
|
|
|
|
|
CXXFLAGS="$ac_save_CXXFLAGS"
|
|
|
|
|
LIBS="$ac_save_LIBS"
|
|
|
|
|
fi
|
|
|
|
|
if test "x$no_openhbci" = x ; then
|
|
|
|
|
@ -128,17 +161,17 @@ if test "x$no_openhbci" = x ; then
|
|
|
|
|
else
|
|
|
|
|
AC_MSG_RESULT(no)
|
|
|
|
|
if test -f conf.openhbcitest ; then
|
|
|
|
|
:
|
|
|
|
|
:
|
|
|
|
|
else
|
|
|
|
|
echo "*** Could not run OpenHBCI test program, checking why..."
|
|
|
|
|
ac_save_CFLAGS="$CFLAGS"
|
|
|
|
|
ac_save_CXXFLAGS="$CXXFLAGS"
|
|
|
|
|
ac_save_LIBS="$LIBS"
|
|
|
|
|
CFLAGS="$CFLAGS $OPENHBCI_CFLAGS"
|
|
|
|
|
CXXFLAGS="$CXXFLAGS $OPENHBCI_CXXFLAGS"
|
|
|
|
|
LIBS="$LIBS $OPENHBCI_LIBS"
|
|
|
|
|
AC_TRY_LINK([
|
|
|
|
|
#include <openhbci.h>
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
], [ return ((OPENHBCI_VERSION_MAJOR) || (OPENHBCI_VERSION_MINOR) || (OPENHBCI_VERSION_PATCHLEVEL)); ],
|
|
|
|
|
], [ return ((OPENHBCI_VERSION_MAJOR) || (OPENHBCI_VERSION_MINOR)); ],
|
|
|
|
|
[ echo "***"
|
|
|
|
|
echo "*** The test program compiled, but did not run. This usually means"
|
|
|
|
|
echo "*** that the run-time linker is not finding OpenHBCI or finding the wrong"
|
|
|
|
|
@ -153,10 +186,10 @@ else
|
|
|
|
|
[ echo "***"
|
|
|
|
|
echo "*** The test program failed to compile or link. See the file config.log for the"
|
|
|
|
|
echo "*** exact error that occured. This usually means OpenHBCI is incorrectly installed."])
|
|
|
|
|
CFLAGS="$ac_save_CFLAGS"
|
|
|
|
|
CXXFLAGS="$ac_save_CXXFLAGS"
|
|
|
|
|
LIBS="$ac_save_LIBS"
|
|
|
|
|
fi
|
|
|
|
|
OPENHBCI_CFLAGS=""
|
|
|
|
|
OPENHBCI_CXXFLAGS=""
|
|
|
|
|
OPENHBCI_LIBS=""
|
|
|
|
|
ifelse([$3], , :, [$3])
|
|
|
|
|
exit 1;
|
|
|
|
|
|