diff options
Diffstat (limited to 'new_functionality_on_rasdaman_doc.txt')
-rw-r--r-- | new_functionality_on_rasdaman_doc.txt | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/new_functionality_on_rasdaman_doc.txt b/new_functionality_on_rasdaman_doc.txt new file mode 100644 index 0000000..8045328 --- /dev/null +++ b/new_functionality_on_rasdaman_doc.txt @@ -0,0 +1,112 @@ + +***************************************************************** + + Addition of optional hdf functionality on rasdaman + Author: Bihemo Kimasa +****************************************************************** + + +1. Making hdf4 optional for installing rasdaman + + Getting and installing hdf libraries can be a daunting + task. Previous versions of rasdaman required by default + that these libraries be found on the system before it + could be configured and hence successfully installed. + + It is now possible to install rasdaman with/out hdf + libraries. A new functionality --with-hdf that can be + passed when configuring rasdaman has been added. The + functionality works by checking whether libdf.a and + libmhdf.a are installed. If these libraries are found a + new variable HAVE_HDF with value 1 is passed to the + compiler. This variable is included in conversion/hdf.cc + and conversion/convfactory.cc sources for conditional + compilation. An error message is printed otherwise. + + If the user choses to configure rasdaman without invoking + --with-hdf functionality, rasdaman will provide a warning + message that hdf presence was not checked but that the user + would need them in order to use rasdaman. These libraries + are particularly needed for work with rascontrol and hence + interact with the servers/database. + + Until the time I was writing this report rasdaman supported + hdf version 4 libraries. Earlier or later versions were + incompatible. For a successful work with rasdaman the + user must ensure that the right version is installed. + + The following is the piece of code that has been added in + the configure.ac script. It should be easy to find it. + + AC_ARG_WITH([hdf], + [AS_HELP_STRING([--with-hdf], + [this feature enables the inclusion of hdf library during installation.])], + [], + [with_hdf=no]) + + AC_MSG_NOTICE(using hdf library...$with_hdf) + + if test "$with_hdf" == yes; then + AC_CHECK_LIB([df], [main], ,[AC_MSG_FAILURE([--with-hdf was given but libdf.a was not found! Please install.])]) + AC_CHECK_LIB([mfhdf], [main], ,[AC_MSG_FAILURE([--with-hdf was given but libmfhdf.a was not found! Please install.])]) + AC_DEFINE([HAVE_HDF], [1]) + fi + + if test "\$with_hdf" == no; then ## the '\' is not part of the code + AC_MSG_NOTICE(Warning: presence of hdf libraries not checked. To run rasdaman you will need to have them installed!) + fi + + Also in the conversion/hdf.cc and conversion/convfactory.cc + the conditional compilation variable HAVE_HDF has been included. + This again is easy to find when one looks at the source codes. + + + + 2. "How to install" instructions + + An updated list of packages needed should look like the following: + + Rasdaman requires a Linux kernel 2.6.18 or higher. Successful + installations are reported for Kubuntu, SuSE, Red Hat, Mandrake + distributions. (Let us know about further ones!) + + Aside from the standard packages which should be available on any + vanilla Linux, the following list has to be installed: + + + -tools: + git-core, make, autoconf, automake, libtool, gawk, flex, bison, + ant, gcc-c++, libstdc++, sun-java6-jdk, Tomcat (or another suitable + servlet container). + + -general libraries: + libreadline-dev, libopenssl-devel, libncurses5-dev database stuff: + PostgreSQL 8.x, libecpg-dev; Warning: do not use versions PG 8.3.0 + to 8.3.6 inclusive, it won't work. + + -image formats: + libtiff-dev, libjpeg-dev, libpng12-dev, libnetpbm10-dev + + -Optionally, the performance boosters and additional service components + offered by rasdaman GmbH can be installed. Also to use rasdaman you + will need to ensure that libhdf4g-dev (note the version) is installed. + + + + 3. Recommendations + + + The following should be kept in mind for the people working on rasdaman: + + Although it is now possible to install rasdaman without hdf libraries, it + is not to be expected that one would be able to interact with it via the + servers/database successfully. This is because the source codes + conversion/hdf.* and conversion/convfactory.cc have all or part of their + code section compiled only when hdf libraries are installed. For instance, + conversion/hdf.cc is not used whenever hdf is not included when configuring. + This means all makefiles lack the HAVE_HDF conditional compilational variable + necessary for their inclusion on installing rasdaman. I feel that this could + limit how one interacts with rasdaman servers. It is necessary to understand + that conversion/hdf.* are important files for rasdaman to work. + + I recommend that for now rasdaman should only be configured --with-hdf. |