Successfully compiled DP-Code on Ubuntu 12.04+ with some minor modifications and usage of compiler options. It required the installation of FFTW3, ATLAS, gfortran, and MPI to successfully compile and test the software according to the developer’s instructions.
The configure step needs the following options: –prefix “Installation destination” –with-gfortran-endianness=big –enable-mpi. After setting these configure flags, configuration and generation of the Makefiles completed. The configure script itself is not pretty and needs a lot of work to understand what is going on. At the moment, I will continue with packaging, then later update the configure script to be more understandable and easier to adjust. There was also the consideration of migrating this code to CMake, but we will see how much time is available by the end of the project. The important aspect is getting the software packaged and running on individual workstations.
The configure script was also modified to remove entries to libraries being located in /usr/local/include. Since all of the needed libraries were managed by the OS, any references to /usr/local/include were modified to point to /usr/include. A minor, but important change.
After the configure flags have been set, no other changes are needed for make, make test, or make install. Quite easy. As long as you are using the above setup, this will proceed normally. MPI support appears to be required for any of the tests to pass. At the moment, I am not certain why, but there may be some specific flags requiring MPI that were not detailed in the installation instructions.
DP-Code was not as difficult to compile and get working on the Ubuntu platform as some other software, but there were some tricks (primarily due to development choices) that do not make it straightforward. I will continue with the changes in my private Bitbucket repo, then later push the changes to the developer to approve/reject.
Packaging still needs to be done, as with the others, but now that the software is working, we begin further testing to ensure that nothing has changed between the present and last time the software was used in the lab.