[[redirect(http://doc.rasdaman.org/02_inst-guide.html#getting-started)]] [[PageOutline]] = Platforms Supported = Rasdaman is continuously tested on the platforms listed below; let us know about further ones you are aware of! The rasdaman code has been developed on SUN/Solaris and HP-UX originally, and has been ported to IBM AIX, SGI IRIX, and DEC Unix - but that was way back in the last millennium. Today's platforms are supported as listed below (and again, porting to further platforms or re-checking the old ones listed before is very welcome). == Linux == * In general, compiling rasdaman should work on distributions with gcc 6+ == Solaris == Andrew Seales from Edinburgh University was kind enough to perform a port again. Below his results; eventually, his findings should be merged into HEAD. {{{ Overall I think I was successful in that while I have doesn't an exhaustive check of all the features, the server runs and I can perform a simple query using rasql. Hopefully these notes will be useful. The environment I used is Solaris 10 running on an AMD Opteron. The OS is 64bit but all the libraries and compilers used were 32bit. The compiler I used was gcc 3.4.3 with the Sun linker. I thought I'd also include a couple of notes on two of the more unusual dependences, hdf and netpbm, even though they not specifically related to you. hdf: Compiled easily. Parameters used were: CC=gcc ./configure --prefix= --disable-fortran netpbm: * converter/other/jpeg2000/pamtojpeg2k.c and converter/other/jpeg2000/jpeg2ktopam.c need -std=c99 added to their compile parameters to compile. This may have been a problem with gcc 3.4.3 however. * window.c in netpbm/other/pamx needs: #if !defined (__SVR4) && !defined (__sun) #include /* Needed by Xutil.h */ #endif to only include Xdefs.h if not compiling on Solaris. Apparantly checking for __SVR4 and __sun is the portable way to tell if compiling on Solaris. Rasdaman: Configured using: CPPFLAGS="-I/local/include" \ LDFLAGS="-L/local/lib" \ ./configure --prefix=/rasdaman \ --with-postgresql=/bin/pg_config * edit configure.in to use libcurses and not libncurses * had to edit generated configure to replace instances of += to ="$var " - I thought there was a way in Autoconf to control this but couldn't find out how from the documentation(Solaris 10 uses bash v3 which doesn't support appending variables using +=) * had to install gawk, the included Solaris nawk doesn't work with the .awk scripts * rpcgen calls need -C -b added. On Linux, -C and -b flags are implied by default but on Solaris they are not * the -DSOLARIS check doesn't work so no source files get passed -DSOLARIS this is a problem for some source files(I hacked it into the Makefile.am AM_CXXFLAGS variable) * servercomm/servercomm.cc and servercomm/servercomm2.cc needs the gethostname commented out on line 77 and line 68 respectively as this conflicts with a built in function * had to upgrade Bison from the Solaris version(v1.8.75) to a newer version, I used v2.4.3 * had to add AM_CXXFLAGS=@BASEDBCXXFLAGS@ and AM_LDFLAGS=@BASEDBLDFLAGS@ to conversion/Makefile.am * during configure the check for hdf.h and mfhdf.h failed but the configure didn't abort, these files seem to be required for conversion/hdf.cc * had to upgrade Flex from Solaris default(v2.5.4) to a newer version, I used v2.5.35 * had to add -lmalloc to server/Makefile.am AM_LDFLAGS parameter. If I added it to LDFLAGS passed to configure this broke servercomm/rpcif_svc.cc * rasmgr/rasmgr_config.hh and rasmgr/rasmgr_localsrv.cc added #ifdef SOLARIS around the #include to include #include instead * rasmgr/Makefile.am added AM_LDFLAGS=@BASEDBLDFLAGS@ to fix linking problems * rascontrol/Makefile.am added AM_LDFLAGS=@BASEDBLDFLAGS@ to fix linking problems * applications/rasql/Makefile.am added @BASEDBLDFLAGS@ to AM_LDFLAGS to fix linking problems * insertutils/Makefile.am added @BASEDBLDFLAGS@ to AM_LDFLAGS to fix linking problems The CPPFLAGS and LDFLAGS variables passed to configure point to the paths where I installed all the upgrades over the Solaris default apps. LD_LIBRARY_PATH and PATH has the same folders before the Solaris default folders to make sure my libraries are picked up first. Not all the fixes above are the "correct" thing to do, in particular the check around #include , but it was enough to get the software to compile and run. The version I used was the version in git checked out about 10 days ago or so. Everything seemed to work except for running rascontrol with the incorrect username or password. This would for some reason cause the server process to hang so RASQL commands wouldn't work. If the correct username and password were passed to rascontrol then everything worked fine. I was successfully able to import the 3 provided sample images and retrieve them using RASQL queries. }}} == HP-UX == Code has been developed under HP-UX originally, but hasn't been compiled there for a long time. Verification on a recent version required. == SGI IRIX == Code has been ported to IRIX earlier, but hasn't been compiled there for a long time. Verification on a recent version required. == MS Windows == The client API (''raslib'') has been ported to Windows long time ago. No further attempt has been made. Using [https://www.docker.com/ docker] helps running Linux code under Windows. == OS X == There are some caveats to compiling rasdaman on OS X: * The configure script has to be edited such that it does not try to locate libgcrypt and libnsl which do not exist on OS X. * The GCC compiler provided by Apple can't compile the sources in `applications/rasql` due to errors concerning C++ templates. The program has to be built manually using the Clang compiler. After this is done, `make` can build the rest of the project by its self. * The version of `rpcgen` shipped with OS X is incredibly ancient. The header files supplied with the system still use "old style" C function declaration where the parameter names and types are listed after the function name and its parentheses. This style of declaring functions is invalid in C++ which is the language used by Rasdaman when it makes RPC calls. Because of this, the system header `/usr/include/rpc/svc.h` has to be edited manually to update the declaration of `svc_register` to a modern that includes declarations for all function parameters.