summaryrefslogtreecommitdiffstats
path: root/m4/ax_lib_rasdaman.m4
diff options
context:
space:
mode:
Diffstat (limited to 'm4/ax_lib_rasdaman.m4')
-rw-r--r--m4/ax_lib_rasdaman.m4151
1 files changed, 151 insertions, 0 deletions
diff --git a/m4/ax_lib_rasdaman.m4 b/m4/ax_lib_rasdaman.m4
new file mode 100644
index 0000000..f16be78
--- /dev/null
+++ b/m4/ax_lib_rasdaman.m4
@@ -0,0 +1,151 @@
+dnl @synopsis AX_LIB_RASDAMAN([Action-if-found, [Action-if-not-fonund]])
+dnl
+dnl Checks if the necessary libraries and headers are available in order
+dnl to compile a program that uses raslib.
+dnl
+dnl @author Sorin Stancu-Mara <smsorin@gmail.com>
+dnl @version 2009-03-16
+dnl @licence GPLWithACException
+
+AC_DEFUN([AX_LIB_RASDAMAN],
+[
+ dnl prerequisites
+ dnl ****************
+ raslib_requirements_ok="yes"
+ raslib_missing=""
+ AC_CHECK_LIB([crypto], [EVP_DigestInit],
+ [
+ LIBS="-lcrypto $LIBS"
+ AC_DEFINE([HAVE_LIBCRYPTO])
+ ],
+ [
+ raslib_requirements_ok="no"
+ raslib_missing="$raslib_missing libcrypto"
+ ])
+ AC_CHECK_LIB([tiff], [TIFFClientOpen],
+ [
+ LIBS="-ltiff $LIBS"
+ AC_DEFINE([HAVE_LIBTIFF])
+ ],
+ [
+ raslib_requirements_ok="no"
+ raslib_missing="$raslib_missing libtiff"
+ ])
+ AC_CHECK_LIB([mfhdf], [SDstart],
+ [
+ LIBS="-lmfhdf $LIBS"
+ AC_DEFINE([HAVE_LIBHDF])
+ ],
+ [
+ raslib_requirements_ok="no"
+ raslib_missing="$raslib_missing libmfhdf"
+ ])
+ AC_CHECK_LIB([png], [png_set_read_fn],
+ [
+ LIBS="-lpng $LIBS"
+ AC_DEFINE([HAVE_LIBHDF])
+ ],
+ [
+ raslib_requirements_ok="no"
+ raslib_missing="$raslib_missing libpng"
+ ])
+ if test "$raslib_requirements_ok" = "no"; then
+ AC_MSG_NOTICE([rasdaman prerequisites not met. You need to install$raslib_missing.])
+ { echo -n; $2 }
+ else
+ AC_LANG_PUSH([C++])
+ AC_ARG_WITH([rasdaman],
+ [AS_HELP_STRING([--with-rasdaman=PATH],
+ [path to rasdaman directory hint])],
+ [HINT_RASLIB="$withval"])
+
+ raslib_found="no"
+ raslib_headers_found="no"
+ dnl find the headers
+ dnl ************
+ raslib_save_CPPFLAGS="$CPPFLAGS"
+ if test "x$HINT_RASLIB" != "x"; then
+ CPPFLAGS="$CPPFLAGS -I$HINT_RASLIB/include -I$HINT_RASLIB"
+ fi
+ AC_CHECK_HEADERS([rasdaman.hh],
+ [raslib_headers_found="yes"])
+ dnl find raslib
+ dnl *************
+ if test "$raslib_headers_found" = "yes"; then
+ CPPFLAGS="$CPPFLAGS -DDEBUG -DDEBUG_MAIN -DEARLY_TEMPLATE -D__EXECUTABLE__"
+ raslib_save_LIBS="$LIBS"
+ raslib_save_LDFLAGS="$LDFLAGS"
+ LIBS="-lclientcomm -lrasodmg -lcompression -lconversion -lclientcomm -lrasodmg -lraslib -lnetwork $LIBS"
+ AC_MSG_CHECKING([raslib])
+ AC_TRY_LINK([
+ #include "rasdaman.hh"
+ #include "raslib/template_inst.hh"
+ #include "debug/debug.hh"
+ ],
+ [
+ r_Database database;
+ database.open("");
+ ],
+ [raslib_found="yes"])
+ if test "$raslib_found" = "yes"; then
+ AC_MSG_RESULT([yes])
+ fi
+ if test "$raslib_found" = "no"; then
+ dnl Not in the default path.
+ dnl Take the hint and assume it's an install directory
+ dnl This means the libs are under lib
+ LDFLAGS="$LDFLAGS -L$HINT_RASLIB/lib"
+ AC_TRY_LINK([
+ #include "rasdaman.hh"
+ #include "raslib/template_inst.hh"
+ #include "debug/debug.hh"
+ ],
+ [
+ r_Database database;
+ database.open("");
+ ],
+ [raslib_found="yes"])
+ if test "$raslib_found" = "yes"; then
+ AC_MSG_RESULT([$HINT_RASLIB/lib])
+ fi
+ fi
+ if test "$raslib_found" = "no"; then
+ dnl Maybe the directory is a dev directory
+ LDFLAGS="$raslib_save_LDFLAGS -L$HINT_RASLIB/clientcomm"
+ LDFLAGS="$LDFLAGS -L$HINT_RASLIB/rasodmg -L$HINT_RASLIB/compression"
+ LDFLAGS="$LDFLAGS -L$HINT_RASLIB/conversion -L$HINT_RASLIB/clientcomm"
+ LDFLAGS="$LDFLAGS -L$HINT_RASLIB/raslib -L$HINT_RASLIB/network"
+ AC_TRY_LINK([
+ #include "rasdaman.hh"
+ #include "raslib/template_inst.hh"
+ #include "debug/debug.hh"
+ ],
+ [
+ r_Database database;
+ database.open("");
+ ],
+ [raslib_found="yes"])
+ if test "$raslib_found" = "yes"; then
+ AC_MSG_RESULT([$HINT_RASLIB])
+ fi
+ fi
+ if test "$raslib_found" = "no"; then
+ AC_MSG_RESULT([no])
+ fi
+ fi
+
+ if test "$raslib_found" = "no"; then
+ dnl We can't find raslib... restore everything
+ LDFLAGS="$raslib_save_LDFLAGS"
+ LIBS="$raslib_save_LIBS"
+ CXXCPPFLAGS="$raslib_save_CXXCPPFLAGS"
+ dnl Run user give commands
+ { echo -n ; $2 }
+ else
+ dnl Run user given commands
+ { echo -n ; $1 }
+ fi
+
+ AC_LANG_POP
+ fi dnl raslib_requirements_ok = no
+])