ECL - дамп исходников c для каждой единицы компиляции и ее зависимостей?

У меня есть следующее определение пакета. Как мне рекурсивно скомпилировать все компоненты, а также их зависимости в исходный код C? Другими словами, я хочу сохранить все файлы C, которые используются при создании собственного исполняемого файла.

В настоящее время я использую (asdf:make-build :example, но при этом не остается никаких файлов C.

Я ожидаю увидеть

simple.c
simple.h
simple.data
cl-opengl.c
cl-opengl.h
...

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

person Robin B    schedule 01.03.2013    source источник
comment
удалось ли вам скомпилировать полученные файлы .c в отдельный исполняемый файл? (то, что я пытаюсь достичь, - это кросс-компиляция сгенерированных файлов .c с кросс-компиляцией gcc)   -  person Attila Lendvai    schedule 21.09.2015


Ответы (1)


Как объясняется в списке рассылки ECL, установка c :: * delete-files * на NIL не позволит компилятору удалить промежуточные файлы C. У них есть расширения * .c, * .eclh (заголовок) и * .data (текстовые определения объектов), но их имена обрабатываются ASDF (они получают некоторый префикс ASDF- IIRC), и они не создаются там, где находятся источники lisp. , а скорее в каталоге кэша ASDF (обычно ~ / .cache / common-lisp / ecl -...)

person Juanjo    schedule 02.03.2013