bundle: add workaround to find mkcl's cmp.a
MKCL 1.1.10 (from git) installs bogus .asd files in its contrib/ directory – for instance cmp.asd is present there (and level-up), and locate-system finds the first, bogus, definition, that points to a cmp.a library in the wrong directory. Bug identified by Daniel Kochmański.
this is wrong, because if the system doesn't exist (i.e MKCL maintainer decides to put asd file in "sys:", not "sys:contrib;")
source-source-directorywill fail with
missing-componentsignal and the latter code won't get executed. Also
find-systemis called twice unnecessarily.
Proper way to do the workaround is to make
find-system-if-being-defineduse cache (see de814305) and to use:
(linkable-system (x) (unless (has-it-p x) (let ((system (and (locate-system x) (find-system x)))) (if (and system #+mkcl (or (not (typep system 'prebuilt-system)) (file-exists-p (prebuilt-system-static-library system)))) (list system) (list (make-library-system x))))))