Closed nawrockie closed 11 months ago
Thanks. The problem is a little different, and I'll note it here (and in my own notes) so we can do an even more elegant fix in the future.
The testsuite is in fact looking in the src directory for the file, not the build directory (that's the !<filename>!
notation in a .sqc file). The sqc
command gets a top_builddir
and top_srcdir
argument (in the testsuite/Makefile
for make check
). In HMMER's testsuite, that means it's getting the relative location of the HMMER build and src tree, within Infernal's build and src tree.
But in Infernal we have both easel and hmmer as infernal subdirectories (infernal/easel
and infernal/hmmer
) whereas in HMMER we have easel as a subdir of hmmer (hmmer/easel
). There's no hmmer/easel
in the HMMER source tree in Infernal. So a HMMER test, run inside Infernal, that goes looking for easel/formats/BLOSUM62
relative to the HMMER source tree will fail.
i.e. the fundamental problem is that we have easel in two different places relative to HMMER in Infernal vs HMMER, and our build system doesn't deal with this cleanly/consistently (for example, by making easel a subdir of HMMER in both places).
The reason we only get this in a fresh git install of Infernal is that there's a different hack in the Infernal ./configure that makes a symlink hmmer/easel
in the build tree, for other reasons, but still related to the fact that our build system is working around having easel in inconsistent places as far as HMMER is concerned. So once you've done ./configure
in the Infernal source tree, you have a hmmer/easel
symlink, and now hmmer/easel/formats/BLOSUM62
is found.
Anyway. Simply putting the BLOSUM62 file (indeed any test file for HMMER) in HMMER's source tree, not Easel's, is the right fix for now.
And updates testsuite.sqc paths to use it. This fixes an issue in infernal where if you configure from a different directory (build dir) without having already done a top-level configure, you'll get hmmer test failures for the two tests that use easel/formats/BLOSUM62 because 'easel/formats' doesn't exist as a subdir of hmmer in the build dir (it does exist in the src dir).