compilation lisp asdf ecl

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 -...)