The fact
I have got metis 5.1.0 installed on a desktop running on Ubuntu 12.04 LTS.
Recently I compiled a piece of software in parallel configuration that could not find the file /opt/metis/metis-5.1.0/lib/libmetis.a and threw a fatal error.
This looks weird to me because all was fine with an earlier version of the same software and with the existing metis installation.
Disappearance of libmetis.a
I have evidence that libmetis.a had been installed, though, from the stderr+stout files of the first metis installation.
For example from somewhere in the output of make install
I can see:
/usr/bin/cmake -P cmake_install.cmake
-- Install configuration: ""
-- Installing: /opt/metis/metis-5.1.0/include/metis.h
-- Installing: /opt/metis/metis-5.1.0/lib/libmetis.a
-- Installing: /opt/metis/metis-5.1.0/bin/gpmetis
Therefore some action must have deleted libmetis.a at some point. I have no recollection or clue of which action could have done this.
Reinstallation of metis
I then reinstalled the same version of metis by running the very same script that I used the first time. The procedure is
sudo make uninstall
sudo make clean
sudo make config prefix=/opt/metis/metis-5.1.0 shared=1 cc=gcc gdb=1 debug=1
sudo make
sudo make install
The corresponding lines in the stdout+sterr have changed though
/usr/local/bin/cmake -P cmake_install.cmake
-- Install configuration: ""
-- Installing: /opt/metis/metis-5.1.0/include/metis.h
-- Installing: /opt/metis/metis-5.1.0/lib/libmetis.so
-- Installing: /opt/metis/metis-5.1.0/bin/gpmetis
Comparison
- cmake lives on another path. I can't recall a reason for this. I do confirm that currently cmake is installed in /usr/local/bin/cmake and that /usr/bin/cmake does not exist any longer. Either way, the version of cmake has been 3.3.1 ever since (I believe).
- libmetis.so gets installed instead of libmetis.a.
- Comparing the old and new stderr+stdout of the
make install
line by line, I see that cmake has been engaged in the first installation a great deal more. Unfortunately I have overwritten the files of the first installation and cannot provide more detail.
Summary
To summarize the changes I noted are
- the static library libmetis.a disappeared (blind spot why/how/when)
- cmake is displaced (blind splot why/how/when)
- a copycat installation of metis leads to shared-object library libmetis.so rather than libmetis.a, perhaps after a different usage of cmake. I look at that
shared=1
in the config command suspiciously, but had worked with scripts with an intention to repeat all operations faithfully. (Though not always are good intentions coded down correctly.)
The aim is to have the libmetis.a file in place again, as requested by parallel software down the line.
Any suggestions tips and pieces of wisdom to fix this issue? Thanks in advance for thinking along.