boinc/dcapi/cf/boinc.m4

109 lines
2.6 KiB
Plaintext

dnl
dnl Check for BOINC components
dnl
dnl
dnl SZDG_BOINC_COMMON
dnl
dnl Check for components common for the client and server API
dnl
AC_DEFUN([SZDG_BOINC_COMMON], [
AC_ARG_WITH([boinc], AS_HELP_STRING([--with-boinc@<:@=DIR@:>@],
[Use BOINC (compiled or installed in DIR)]),, [with_boinc=auto])
no_boinc=
if test "$with_boinc" = no; then
no_boinc=yes
fi
if test "$no_boinc" != yes; then
case "$with_boinc" in
yes|auto)
BOINC_INCLUDES="/usr/include/boinc"
BOINC_CPPFLAGS="-I/usr/include/boinc"
BOINC_LDFLAGS=
;;
*)
# Check if this is an installed or just a compiled-in-place
# version
if test -d "$with_boinc/sched"; then
BOINC_CPPFLAGS="-I$with_boinc/api -I$with_boinc/lib -I$with_boinc/sched -I$with_boinc/tools -I$with_boinc/db"
BOINC_LDFLAGS="-L$with_boinc/api -L$with_boinc/lib -L$with_boinc/sched"
else
BOINC_CPPFLAGS="-I$with_boinc/include/boinc"
BOINC_LDFLAGS="-L$with_boinc/lib"
fi
;;
esac
fi
if test "$no_boinc" != yes; then
BOINC_COMMON_LIBS="-lboinc -lcrypto"
fi
AC_SUBST([BOINC_CPPFLAGS])
AC_SUBST([BOINC_LDFLAGS])
])
dnl
dnl SZDG_BOINC_SERVER
dnl
dnl Check for BOINC server-side API
dnl
AC_DEFUN([SZDG_BOINC_SERVER], [
AC_REQUIRE([SZDG_BOINC_COMMON])
dnl
dnl First check for MySQL
dnl
AC_PATH_PROG([MYSQL_CONFIG], [mysql_config])
if test "$MYSQL_CONFIG" = ""; then
no_boinc=yes
else
MYSQL_CPPFLAGS="`$MYSQL_CONFIG --include`"
MYSQL_LIBS=`$MYSQL_CONFIG --libs | sed -e 's,-L/usr/lib , ,'`
fi
AC_SUBST([MYSQL_CPPFLAGS])
AC_SUBST([MYSQL_LIBS])
if test "$no_boinc" != yes; then
BOINC_SERVER_CPPFLAGS="$BOINC_CPPFLAGS $MYSQL_CPPFLAGS"
BOINC_SERVER_LIBS="-lsched $BOINC_COMMON_LIBS -lstdc++ $MYSQL_LIBS"
fi
AC_SUBST([BOINC_SERVER_CPPFLAGS])
AC_SUBST([BOINC_SERVER_LIBS])
if test "$with_boinc" = yes && test "$no_boinc" = yes; then
AC_MSG_ERROR([BOINC development environment was not found])
fi
])
dnl
dnl SZDG_BOINC_CLIENT
dnl
dnl Check for BOINC client-side API
dnl
AC_DEFUN([SZDG_BOINC_CLIENT], [
AC_REQUIRE([SZDG_BOINC_COMMON])
save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $BOINC_CPPFLAGS"
save_LDFLAGS="$LDFLAGS $BOINC_LDFLAGS"
LDFLAGS="$LDFLAGS $BOINC_LDFLAGS"
AC_CHECK_HEADERS([boinc_api.h filesys.h diagnostics.h],, [no_boinc=yes])
AC_LANG_PUSH([C++])
AC_CHECK_LIB([boinc_api], [boinc_init], [true], [no_boinc=yes],
[-lboinc -lm -pthread])
AC_LANG_POP([C++])
LDFLAGS="$save_LDFLAGS"
CPPFLAGS="$save_CPPFLAGS"
if test "$with_boinc" = yes && test "$no_boinc" = yes; then
AC_MSG_ERROR([BOINC development environment was not found])
fi
BOINC_CLIENT_LIBS="-lboinc_api $BOINC_COMMON_LIBS -lstdc++ -lm -pthread"
AC_SUBST([BOINC_CLIENT_LIBS])
])