I have successfully
compiled the ASDF package defining the library into a libelf.a library
using the following command.
(asdf:make-build :elf :type :lib :move-here "/home/eschulte/src/elf/")
While this seems to have been successful, and while I have been able to
manipulate generic ECL lisp objects from within C code, I can not figure
out how to access the lisp functions defined in this static library from
a file of C code.
You are still missing a crucial step: building your library into a program. This is the reason why MAKE-BUILD has another target, :type :program, which does the missing steps: linking C and Lisp code together.
My latest attempt is the following run.c file.
File is missing all the steps that MAKE-BUILD takes to initialize the library. There is a reason why MAKE-BUILD and C:BUILDER exist: to hide this interface from you because it is very ugly and prone to change -- if you read my other email today, those changes are related to this interface (loading libraries and initializing their data).
I now realize C:BUILDER and C:MAKE-BUILD might need another target, something like :standalone-lib or :standalone-dll, where one would simply specify the name of the library and its initialization function and it would do the rest. I will note it down.