While quickloading IOLib, g++ raised an error because it couldn't find "lfp.h". After digging around a bit, I realized I needed to install libfixposix. It seems like ASDF would already have a way to express this dependency, resulting in a clearer error message.
If this doesn't already exist, what's the way to go about it? A :before method on prepare-op for cffi components (or some such, I'm just bluffing here)?
On Wed, Apr 27, 2016 at 10:06 PM, Ian Tegebo ian.tegebo@gmail.com wrote:
While quickloading IOLib, g++ raised an error because it couldn't find "lfp.h". After digging around a bit, I realized I needed to install libfixposix. It seems like ASDF would already have a way to express this dependency, resulting in a clearer error message.
If this doesn't already exist, what's the way to go about it? A :before method on prepare-op for cffi components (or some such, I'm just bluffing here)?
ASDF itself is not going to support that out of the box, but CFFI's ASDF support could be enhanced to better support C dependencies: a new component and/or system class could be defined that describes the C library you need, and/or how to build it.
That said, if you're looking for a build system that can handle multilanguage builds including Common Lisp and C, try Bazel: http://bazel.io/ https://github.com/qitab/bazelisp
And if you're unsatisfied with both ASDF and Bazel, maybe join me and create the next great build system: https://ngnghm.github.io/blog/2016/04/26/chapter-9-build-systems/
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org The only saving grace of government is that they're incompetent, because if they could do what they really want, it would be horrible for all of us
You could certainly create a class of ASDF component that would represent software packages/libraries like libfixposix.
Then you would have the PERFORM methods on the objects of this class simply check for the presence of the library. You could have other ASDF components depend on objects of this class.
Probably the trickiest thing would be to write the methods to check for presence of the libraries, which would have to mirror all the ways your C compiler and/or CFFI might find them, in order to avoid false negatives where ASDF would error out, although the build would have been successful.
For C libraries built with make folks at my company have banged together a class like this, but not for libraries that are installed by .deb, rpm, Mac ports, brew, cygwin, etc, etc
Sent from my iPhone
On Apr 27, 2016, at 21:06, Ian Tegebo ian.tegebo@gmail.com wrote:
While quickloading IOLib, g++ raised an error because it couldn't find "lfp.h". After digging around a bit, I realized I needed to install libfixposix. It seems like ASDF would already have a way to express this dependency, resulting in a clearer error message.
If this doesn't already exist, what's the way to go about it? A :before method on prepare-op for cffi components (or some such, I'm just bluffing here)?
-- Ian Tegebo