lqml/src/make.lisp

72 lines
2.2 KiB
Common Lisp

;;; check target
(let ((arg (first (ext:command-args))))
(mapc (lambda (name feature)
(when (search name arg)
(pushnew feature *features*)))
(list "/ecl-android" "/ecl-ios")
(list :android :ios)))
(when (probe-file "/etc/sailfish-release")
(pushnew :sailfish *features*))
#+(or android ios sailfish)
(pushnew :mobile *features*)
;;; compile ASDF system
(require :asdf)
(require :cmp)
(push (merge-pathnames "../")
asdf:*central-registry*)
(setf *default-pathname-defaults*
(merge-pathnames "../../")) ; LQML root
#-mobile
(asdf:make-build "lqml"
:monolithic t
:type :static-library
:move-here (format nil "platforms/~A/lib/"
#+linux "linux"
#+darwin "macos"
#+win32 "windows")
:init-name "ini_LQML")
#+mobile
(progn
(pushnew :interpreter *features*)
(defvar *asdf-system* "lqml")
(defvar *init-name* "ini_LQML")
(defvar *library-path* (format nil "platforms/~A/lib/"
#+android "android"
#+ios "ios"))
(load "platforms/shared/make"))
;;; rename lib
(let* ((from (format nil "platforms/~A/lib/lqml--all-systems.~A"
#+(and linux (not android)) "linux"
#+(and darwin (not ios)) "macos"
#+win32 "windows"
#+android "android"
#+ios "ios"
#+msvc "lib"
#-msvc "a"))
(to #+msvc "lisp.lib"
#-msvc (format nil "liblisp~A.a"
#+android (if (<= most-positive-fixnum (expt 2 32)) "32" "")
#-android ""))
(to* (format nil "platforms/~A/lib/~A"
#+(and linux (not android)) "linux"
#+(and darwin (not ios)) "macos"
#+win32 "windows"
#+android "android"
#+ios "ios"
to)))
(when (probe-file to*)
(delete-file to*))
(rename-file from to))
(terpri)