Page maintained by
Isdat build howto
This document explains how to build/install the ISDAT software
and tells you howto solve known problems. If you find a solution
to a problem not in this list. Please send me an email (firstname.lastname@example.org) so I can add it to the list.
This howto is divided into four sections as described below.
To build the basic ISDAT system with libraries and Igr you will need
- ANSI c compiler
- Unix parse generator tools
- yacc/flex, or the gnu equivalent bison/flex
- Perl with the standard module Cwd.
- Motif (A window widget library)
Some of the server modules require extra tools/libraries.
- The Ephemeris module can be built to use the maglib written in Fortran.
This gives you enhanced functionality and is recommended.
- In this case you need a Fortran 77 compiler, any one of g77
or f77 works fine.
- To build the Csds server module you will also need the cdf library.
Isdat is built to use cdf version 2.6 (although it seems to work
with later versions as well).
Given that the requirements are fulfilled ISDAT is known to compile on the following platforms:
- Linux Intel, Suse 7.0, RedHat >6.0 and probably other
distributions as well.
- Solaris SPARC, Intel 2.8, 2.7, 2.6
- Free BSD Intel 3.5
- openVMS VAX
- HP/UX 10.20, 11.0
BUILD/COMPILE INSTRUCTIONS (very first time)
ISDAT uses the imake system (not required since it comes
with isdat) to create the platform dependent makefiles,
which is needed on the very first build.
- Unpack the distribution media
- Unzip, untar, etc. the files in the directory you wish
to have the ISDAT system. If you have cvs access read the Isdat
- Set up the environment. Go to the script directory in the Isdat
source distribution. Edit my_isdat_profile so that the variable
ISDAT_HOME points to your Isdat source distribution (my_isdat_profile.csh
for csh users). Source the appropriate file.
- Configure the first build.
Copy the file
Edit this file to suit you needs.
You may wish to add some build options, such as compiling
the IDL or Matlab APIs, use of CDF etc. If you want some of this
functionality set is corresponding variable to YES and make shure
all paths are correct.
- You do not have to uncomment HasGcc2 for Linux, it will use gcc any way.
- IF YOU DO NOT HAVE CDF please remove the $ISDAT_HOME/server/Csds
directory or rename $ISDAT_HOME/server/Csds/Init.c to something else.
- If you build on sun and enables any special resource use the rows that
are comment away (uses sun specific flags) instead of the existing ones.
- Starting the first build
Change directories so to $ISDAT_HOME. Start the first build by
This will generate a lot of messages. After some time you
should end up with a message saying "Full Build of
ISDAT of completed"
Post build installation
The ISDAT distribution does not have an install stage as many
other systems have. All the binaries after the build will be linked from
$ISDAT_HOME/bin into their source code directory where they reside. After a
Isdat build it is allays a good idea to have a look in this directory.
If the link to a special binary exist it has been successfully build. Otherwise
have a look at the last section
Problems and solutions
After a successful build you need to set a few things in order to run
the ISDAT system.
- Setting environment variables.
You need the set a few environment variables. Look at
the file $ISDAT_HOME/scripts/my_isdat_profile which contains
these variables along with comments. Specially make shure ISDAT_DATABASE
is set to whatever Isdat server you intend to use.
You can conveniently copy this file into your HOME directory
and rename it as you wish (or include it into you usually profile file).
- Setting paths to the data files.
For the ISDAT server to find data files, calibration files, etc.
you must edit the $ISDAT_HOME/configure/isdat.server file.
If you plan on running your own Isdat dbh have a look at:
Problems and solutions
Unfortunately the message "Full Build of
ISDAT of completed" is no guarantee that everything went ok.
You have to look if the binaries are in place in order to verify
a successful build. If something goes wrong:
- If you feel that everything just went wrong or you did not get any
binaries at all. Go through all steps in the build carful once more. Also
have a look at the problems and solutions section. After (hopefully)
correcting the error, you have two choices.
- Full rebuild of Isdat system.
Copy $ISDAT_HOME/Makefile.ini to $ISDAT_HOME/Makefile, type
to rebuild Isdat and all of its makefiles
- Just type make in $ISDAT_HOME.
This rebuilds everything except the makefiles.
- If you have problems building some special binary.
Change directory into the source code for the binary missing. From
here type make. Now you will have a better view of what is coursing
the problem. Make will now stop on the first error it encounters.
- A source of error as well as a useful aid is the LD_LIBRARY_PATH
If you encounter any errors in the linking stage, check this variable.
It could cause Isdat to link to the wrong library files. (not the
system wide ones). But it can also be used for this purpose.
If the Isdat build does not find any libraries that it should, set
the LD_LIBRARY_PATH to this directory and rebuild.
Some special problems.
- Ephemeris module does not build under Linux:
f77: no such file or directory
Solution is to
before build. If you don not want to remake all makefiles
link g77 to f77.
- Build stops immediately under Linux:
cc: no such file or directory
unfortunately the first Makefile runed is hard coded to use cc.
Most Linux distributions has a link cc to gcc which solves this
problem. Make the link or edit the top of
$ISDAT_HOME/config/imake/Makefile.ini, CC = cc should be CC = gcc.
- Library $ISDAT_HOME/lib/Mo does not build under Linux:
/usr/bin/ld: cannot find -lXpm
collect2: ld returned 1 exit status
This library is supposed to link to a file libXpm.so, you may not
have this file in your distribution, but instead libXmp.so.4.
A softlink from libXpm.so.4 to libXpm.so will solve the above
problem. These files are most often found in /usr/X11R6/lib.
- Isdats own header files is not found during build.
Error message something like:
Db.h, Isutil.h File not found
This problem can have one of two causes:
- The $ISDAT_HOME variable is not set, edit and source
- For some reason
make isdat some times fail
make includes. If you run this command manually
from $ISDAT_HOME the include files will be linked and make can find
them when you finally run
make from $ISDAT_HOME.
- Parse error when building the Idl API on sun using cc.
You will receive an error like:
"/usr/local/rsi/idl/external/export.h", line 281: invalid
"/usr/local/rsi/idl/external/export.h", line 282: long long
not allowed in Xc mode
"/usr/local/rsi/idl/external/export.h", line 282: invalid
This is becourse the Idl headerfiles simply is not in ansi c as the
flag -Xc implies. The fix is to edit $ISDAT_ROOT/config/sun.cf row
347, define DefaultCCOptions -Xc should be define DefaultCCOptions.