compilation - ECL: ¿fuente de volcado c para cada unidad de compilación y sus dependencias?
lisp asdf (1)
Tengo la siguiente definición de paquete. ¿Cómo compilo todos los componentes recursivamente, así como sus dependencias a la fuente C? En otras palabras, quiero preservar todos los archivos C que forman parte del desarrollo del ejecutable nativo.
Actualmente, uso (asdf:make-build :example
pero eso no deja ningún archivo C alrededor.
Estoy esperando ver
simple.c
simple.h
simple.data
cl-opengl.c
cl-opengl.h
...
ejemplo.asd:
(defsystem :example
:depends-on (:cl-opengl :cl-glu :cl-glut)
:serial t
:components ((:file "simple")))
cl-opengl.asd:
(defsystem cl-opengl
:description "Common Lisp bindings to OpenGL."
:depends-on (cffi alexandria)
:components
((:module "gl"
:components
((:file "bindings-package")
(:file "constants" :depends-on ("bindings-package"))
(:file "library" :depends-on ("bindings-package"))
(:file "bindings" :depends-on ("bindings-package" "constants" "library"))
...
Como se explica en la lista de correo de ECL, establecer c :: * delete-files * en NIL evitará que el compilador elimine los archivos C intermedios. Tienen extensiones * .c, * .eclh (encabezado) y * .data (definiciones de texto de objetos), pero sus nombres son masajeados por ASDF (obtienen algunos ASDF-prefijo IIRC) y no se crean donde viven las fuentes de lisp , sino más bien en el directorio de caché de ASDF (típicamente ~ / .cache / common-lisp / ecl -...)