From [1] I see the following code example
(define-foreign-library libcurl
(:unix (:or "libcurl.so.3" "libcurl.so"))
(t (:default "libcurl")))
with the comment "the
define-foreign-library
clause
(t (:default "libcurl"))
[...]
will adapt to various operating systems".
I'm wondering exactly how smart is this automatic handling?
On Windows, for example, the conventions are not always followed so closely, and as a result I keep adding more special cases to my define-foreign-library clauses when users complain they can't load the libraries.
For example, libpng might be png.dll or libpng.dll or libpng12.dll or libpng12-0.dll or libpng15-15.dll.
Will I be required to maintain a list of all possible names for the rest of eternity or is there some better way to manage this situation?