Compiling Solo on Mac OS X 10.3

Instructions based on Solo II 1.10 from NCAR, on 6 Feb 2006

Using an Intel Mac?

The instructions on this page are for PPC Macs. Please see Lou Wicker's instructions on how to deal with some endian issues related to the use of the Intel processor.

Prerequisites

These instructions work with g77, but haven't been tested with the xlf compiler. I'm indebted to a mysterious M. Bell at NCAR whose changes came to me secondhand in an older version of Solo, and have been incorporated into these instructions.

g77, GTK+ and netCDF can be installed via Fink if desired.

Installing

Download the most recent Solo from ftp://ftp.atd.ucar.edu/pub/archive/rdpdist to a working directory, such as ~/Desktop/sources/. cd into that directory, and expand the Solo archive:

tar -zxvf soloii110.tar.gz
cd soloii110
sudo mkdir /usr/local/soloii110
sudo cp -R translate/ /usr/local/soloii110/translate
sudo cp -R include/ /usr/local/soloii110/include

If you've installed GTK and netCDF via fink, the compiler needs to know where to find those, so set some environment variables. Then run configure. This will set up to install Solo in /usr/local, as is typical on Unix-like systems.

setenv CFLAGS -I/sw/include 
setenv LDFLAGS -L/sw/lib 
setenv CXXFLAGS $CFLAGS 
setenv CPPFLAGS $CXXFLAGS
./configure  --exec_prefix=/usr/local --bindir=/usr/local/bin

Now, for some editing of the Makefiles to tweak a few more things. There are four Makefiles: ./Makefile, ./editor/Makefile, ./perusal/Makefile, and ./translate/Makefile. In each of these, change these lines to read like so, noting that anything involving /sw deals with having used fink to install GTK or netCDF:

LOCAL_DEFS = -DUNIX -DNETCDF 
LIBS = -lm -L/usr/local/lib -lnetcdf -lncurses
FLIBS = -lm -L/usr/local/lib -lnetcdf
LOCAL_INCLUDES = -I./ -I${SOLODIR}/include -I/sw/include
REODORADE_LIBS = /usr/local/soloii110/translate

There are no lines for LIBS, FLIBS, or REODORADE_LIBS in ./editor/Makefile. In ./perusal/Makefile, change the AC_LIBS line instead of LIBS; there is no FLIBS line.

Some source files have a mysterious #ifdef osx, which can be enabled by setting -Dosx in LOCAL_DEFS, but it didn't seem to affect the build process, and actually seemed to break a few things.

In the file ./translate/dd_io_mgmt.c, add this line below the other #include lines:

# include <sys/ioctl.h>

Finally, we're ready to make, which also does the install (strangely).

sudo make

Author: Eric Bruning