1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
*****************************************************************
Addition of optional hdf4 functionality on rasdaman
Author: Bihemo Kimasa
******************************************************************
1. Making hdf4 optional for installing rasdaman
Getting and installing hdf4 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 hdf4
libraries. A new functionality --with-hdf4 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-hdf4 functionality, rasdaman will provide a warning
message that hdf4 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
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([hdf4],
[AS_HELP_STRING([--with-hdf4],
[this feature enables the inclusion of hdf4 library during installation.])],
[],
[with_hdf4=no])
AC_MSG_NOTICE(using hdf4 library...$with_hdf4)
if test "$with_hdf4" == yes; then
AC_CHECK_LIB([df], [main], ,[AC_MSG_FAILURE([--with-hdf4 was given but libdf.a was not found! Please install.])])
AC_CHECK_LIB([mfhdf], [main], ,[AC_MSG_FAILURE([--with-hdf4 was given but libmfhdf.a was not found! Please install.])])
AC_DEFINE([HAVE_HDF], [1])
fi
if test "\$with_hdf4" == no; then ## the '\' is not part of the code
AC_MSG_NOTICE(Warning: presence of hdf4 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 hdf4 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 hdf4 libraries are installed. For instance,
conversion/hdf.cc is not used whenever hdf4 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-hdf4.
|