Help:Doc CCA Install Solaris

From CSDMS

Installing CCA Tools on Solaris

The CCA tools have been successfully built and installed on Solaris 5.8. Please note that we no longer have a Solaris machine to test the install process for the CCA tools on Solaris. As such, we will probably be slow to update this page.

Before starting, please read over the generic install instructions.

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!