rh7_instructions

# RHEL / CentOS 7 Build Instructions

This is a collection of notes on getting OpenVSP to build on RH7 based Linux distributions. These are not (yet) meant to be a comprehensive (or easy to follow) set of instructions. Instead, this is meant to serve as a set of notes and working instructions as support for RH7 is improved.

Normally on Linux, we try to use system-installed libraries wherever possible. This is generally preferred by the distributions (use shared libraries where possible) and also shifts the burden of solving many compilation issues to the distribution. However, in certain situations, the list of libraries installed on a machine may be very limited – and the administrators may be unwilling to install more packages. In that situation, we may desire to use as few system-installed libraries as possible.

Unfortunately, this means the bundled libraries don't get tested as often on Linux as they do on other platforms (where they are the preferred solution). So it is not surprising that things break.

When developing these notes, I tried to use bundled libraries as much as possible – only switching to a system-installed library when there was a problem with the bundled library. This resulted in a working OpenVSP build – but it may not be optimal for users in a different situation. Though not a final solution, this provides us with an important initial position to work from.

These instructions should work for OpenVSP version 3.25.0 and later. Some small issues were discovered while preparing these notes that have been rolled into that version.

#### Build Instructions

The CentOS 7 VM that I used to develop these instructions was a fresh install, but one that was set up for software development, content creation, and other user-centric workflows. Some dependencies may be hidden in the following because they were installed by default.

1. Install required packages:

sudo yum install epel-release
sudo yum repolist
sudo yum install cmake3 glew-devel libxml2-devel fltk-devel fltk-fluid

2. Make main directory and clone OpenVSP source:

mkdir OpenVSP; cd OpenVSP

mkdir repo build buildlibs

git clone --depth=1 https://github.com/OpenVSP/OpenVSP.git repo

3. Prepare build files for the libraries:

cd buildlibs

cmake3  -DCMAKE_BUILD_TYPE=Release ../repo/Libraries -DVSP_USE_SYSTEM_LIBXML2=true -DVSP_USE_SYSTEM_FLTK=true -DVSP_USE_SYSTEM_GLEW=true

4. Build the libraries:

Adjust the integer after -j to tell make the number of recipes to execute simultaneously.

make -j8

5. Set up and build OpenVSP:

cd ../build

your/path/to

to suit your path names to the OpenVSP directory.

cmake3 -DCMAKE_BUILD_TYPE=Release ../repo/src/ -DVSP_LIBRARY_PATH=/home/your/path/to/OpenVSP/buildlibs

6. Build OpenVSP

make -j8

7. Make joint folder with executables:

make package

This will generate a zip folder with all the executables necessary to run OpenVSP.

#### Dependencies

This build will rely on a bunch of shared libraries. If you want to build on one machine and migrate the resulting binaries to another machine, you will have to make sure the required libraries are available on the destination machine. You can generate a list of required libraries using the following commands.

ldd vsp
ldd vspaero
ldd vspviewer
ldd vspslicer
ldd vspscript
ldd _vsp.so

#### Notes

It should be possible to get a build working that requires installing no packages using sudo.