Updated openhbci macro for latest openhbci versions.

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@8262 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Christian Stimming 2003-05-01 16:15:08 +00:00
parent ce6bea0822
commit eba6b72793

View File

@ -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, &micro) != 3) {
printf("%s, bad version string\n", "$min_openhbci_version");
exit(1);
build=0;
if (sscanf(tmp_version, "%d.%d.%d.%d", &major, &minor, &micro, &build) != 4)
{
build = 0;
if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 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;