On Fri, Mar 8, 2019 at 5:29 PM Michael Orlitzky <[email protected]> wrote: > > On 3/7/19 10:34 PM, Ike Stoddard wrote: > > Do you have/know a developer working on it? Shell or m4 or whatever to > > fold detection in? > > The authors of these packages ought to have canonical tests for > > existence/version that can be included. > > For C and C++ libraries, autoconf provides most of what you need > already. If you want *any* version of a library, then it might suffice > to check for the headers that you #include in your own program. The > AC_CHECK_HEADER macro can do that. > > If you need a specific version, then usually that's because you want a > function that appeared in the new version. In that case, it's best to > test for the existence of the function rather than the version number. > The AC_SEARCH_LIBS macro can do that. > > A good example for those two macros is the following: > > https://git.sagemath.org/sage.git/commit?id=20c3d7a1b87cf650dcec54133d9f9cee05e82677 > > In essence that whole macro is very simple if you can ignore the > compile-test in the middle. > > The "modern" way to do an existence/version check is through pkg-config. > Not everyone integrates with pkg-config; but if they do, then autoconf > has a PKG_CHECK_MODULES macro that can check for existence of specific > versions.
An example on how to use PKG_CHECK_MODULES is in https://github.com/sagemath/sage/blob/develop/build/pkgs/libffi/spkg-configure.m4 (we don't check the version, but if we wanted to, say, make sure it is a least 1.2.3 we would have done [libffi >= 1.2.3] instead of just [libffi]) > > The "Autotools Mythbuster" at https://autotools.io/ is a good reference > for this stuff, but none of them are perfect. You'll still need the > official autotools docs, and a good bit of trial and error if my own > experience is typical. > > -- > You received this message because you are subscribed to the Google Groups > "sage-devel" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/sage-devel. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.
