Porting FAQ
written by Joey Mukherjee -
joey@swri.org
Table of contents
- Overview
- Getting Started
- Platforms supported
- How To...
SDDAS is a very portable collection of software. We have successfully
ported the system to a variety of platforms with little difficulty. This
serves as a guide on how to port SDDAS to your target platform.
First, obtain the source code to SDDAS. You can do this by emailing
Sandee Jeffers at
SJeffers@swri.org.
Indicate how you wish to receive the source code. Either via mail, ftp,
or web address... You will need to sign a license agreement. Next step
is to try the compilation. You will need the following working correctly
on your system:
- egcs v1.1b or later. This is obtainable from
http://www.cygnus.com/egcs
- Imake
- Tcl/Tk v8.0.3 or later (This is obtainable from
ftp.scriptics.com)
- CDF v2.6 and netCDFv2.4 for the Data Export application
- VTK v3.1 or later
- Mesa v3.0 or later
Both Tcl/Tk and VTK must be compiled a special way. Compile Tcl/Tk with
the following options:
Here is what we use to compile Tcl/Tk:
./configure --enable-gcc --disable-load --prefix=/opt/local/tcltk
The enable-gcc forces GCC to be used. The disable-load forces static libraries
to be created. Finally, the prefix is where to install.
VTK must be compiled with :
- --with-contrib
- --with-local
What we use is as follows:
configure --with-tcl --with-contrib --with-local --with-tk-widget --with-opengl --prefix=/opt/local/vtk31/OpenGL
Since we use Tcl/Tk, we include the --with-tcl and --with-tk-widget options. The --with-opengl
tells it to use the native GL and finally the prefix is where to put it. The --with-contrib
and --with-local tell it to include these directories when building. Finally, the local subdirectory
must be populated with our special routines. Email joey@swri.org
to get these routines. They are not included in the SDDAS source code.
We have sucessfully ported SDDAS to the following operating systems:
- Sun Solaris v2.5.1
- Hewlett-Packard HP-UX v10.20
- IBM AIX
- DEC Alpha Ultrix
- Linux
Here are the steps required to port SDDAS:
- Create a directory that will be home to SDDAS. This directory
will be the new SDDAS_HOME.
- Create some subdirectories under SDDAS_HOME. These are :
- bin
- include
- lib
- src
- Untar the SRC.tar.gz in the src directory.
- Configure the SDDAS.rules to your target platform.
- Make sure either SDDAS.rules is in the Imake include file path, or
set IMAKEINCLUDE to the directory where it is. (i.e. setenv
IMAKEINCLUDE -I$SDDAS_HOME/src).
- Set your environment variable SDDAS_HOME.
- Do a "xmkmf -a" (or if that doesn't work, an "xmkmf" and then a
"make Makefiles") in the src directory. If imake is installed
correctly, and the SDDAS.rules is correct, everything should
go fine.
- Type "make". If there are no errors so far, this is a very good
sign and most things might go just fine.
- If the previous step completed fine, you can now compile the rest
of SDDAS. To do this, do a make followed by (and in this order):
first, second, third, fourth, fifth, sixth, seventh, and finally eighth.
(e.g. "make second", "make third", ...)
- If you know everything will work fine since the SDDAS.rules is the same,
then you can do a "make all".
- There is a problem with libSCF and libErrorMsgs. For right now, the
work around is to just type "make all" again and it will eventually
piece through it.
Notes:
- LINUX - had to add Xintl to the libs, had to compile sdhelp with /usr/X11R6/lib at the
end instead of beginning for it to work (conflicting xpm!)
- AIX - in TclScripts, had to add a -ldl to the EXTRA_LIBRARIES for these to compile.
Also, the data directory had to be changed to a read, write, execute for the promote
meta data to work (chmod 777 $SDDAS_DATA). If you see an error message like the following:
"0481-014 chmod: not all requested changes were made to ...", you have this problem.