EQL5/src/make.lisp

54 lines
1.7 KiB
Common Lisp

#-unicode
(error "Please build ECL with unicode support (configure --enable-unicode)")
(require :cmp)
(setf *break-on-signals* 'error)
#+msvc
(setf c::*compile-in-constants* t)
(defvar *lisp-files* (list "x" "package" "ini"
"enums1" "enums2" "enums3" "enums4" "enums5"
"special-extensions"))
(dolist (f *lisp-files*)
(let* ((file (format nil "lisp/~A" f))
(file.o (format nil "~A.~A" file #+msvc "obj" #-msvc "o")))
(when (probe-file file.o)
(delete-file file.o))
(compile-file file :system-p t)))
;; wrapper functions
(defvar *all-wrappers* (append (loop :for i :from 1 :to 12 :collect (format nil "all-wrappers-~D" i))
(loop :for i :from 1 :to 2 :collect (format nil "all-wrappers-webengine-~D" i))))
(load "lisp/x")
(load "lisp/package")
(defun eql::%invoke-method (&rest args))
(defun eql::qproperty (&rest args))
(defun eql::qset-property (&rest args))
(progn
(compile-file "lisp/ini")
(load "lisp/ini")
(compile-file "lisp/ini" :system-p t))
(dolist (file *all-wrappers*)
(compile-file (format nil "lisp/~A.lisp" file) :system-p t))
;; lib
(c:build-static-library "ini_eql5"
:lisp-files (mapcar (lambda (file)
(format nil "lisp/~A.~A" file #+msvc "obj" #-msvc "o"))
(append *lisp-files* *all-wrappers*))
:init-name "ini_EQL")
;; for eql5.pro (doesn't create directories)
(dolist (module (mapcar 'file-namestring (directory "module_*.pro")))
(ensure-directories-exist (format nil "tmp/~A/tmp/"
(subseq module (1+ (position #\_ module)) (position #\. module)))))