How To Install CCA Solaris

From CSDMS

Solaris 5.8

There is some extra work to install CCA on Solaris. The main problem is that the build system assumes `/bin/sh` is GNU bash > 3.0. If you are able to, the easiest fix is to link `/bin/sh` to the appropriate version of bash. On my machine, <geshi lang=bash> > sudo ln -s /usr/local/gnu/bin/bash /bin/sh </geshi>

Careful with this! After installing CCA, you'll probably want to undo the link and return `/bin/sh` back to its normal self.

Now set the `LIBS` environment variable so that realtime library is linked to <geshi lang=bash> export LIBS="-lrt" </geshi>

This library provides definitions of sem_destroy, sem_wait, sem_post, and sem_init. Without this, the build will fail during the make of ccaffeine.

Unfortunately, even after this the build will not succeed. The build should fail during the ccaffeine make complaining about `fcntl` not being declared. That's because `fcntl.h` is included. You'll need to edit `build/ccaffeine/cxx/dc/distributed/SocketConnectionManager.cxx`. Notice that `#include <fcntl.h>` is wrapped by a couple of `ifdef`s. Either get rid of the `ifdef`s or move the include statement outside of them. Now go back to the top-level build directory and run `contract.py` again. That should do it!