Commit 76959caa authored by Francois-Rene Rideau's avatar Francois-Rene Rideau

Distinguish :fasb and :fasl

Fixes bundle builds for MKCL post 1.1.10.
parent bae381cb
......@@ -110,7 +110,7 @@ itself."))
(defclass basic-compile-bundle-op (bundle-op basic-compile-op)
((gather-type :initform #-(or clasp ecl mkcl) :fasl #+(or clasp ecl mkcl) :object
:allocation :class)
(bundle-type :initform :fasl :allocation :class))
(bundle-type :initform :fasb :allocation :class))
(:documentation "Base class for compiling into a bundle"))
;; Analog to prepare-op, for load-bundle-op and compile-bundle-op
......@@ -217,6 +217,8 @@ for all the linkable object files associated with the system or its dependencies
((eql :no-output-file) ;; marker for a bundle-type that has NO output file
(error "No output file, therefore no pathname type"))
((eql :fasl) ;; the type of a fasl
(compile-file-type)) ; on image-based platforms, used as input and output
((eql :fasb) ;; the type of a fasl
#-(or clasp ecl mkcl) (compile-file-type) ; on image-based platforms, used as input and output
#+(or clasp ecl mkcl) "fasb") ; on C-linking platforms, only used as output for system bundles
((member :image)
......@@ -274,7 +276,7 @@ e.g. as part of the implementation, of an outer build system that calls into ASD
or of opaque libraries shipped along the source code."))
(defclass precompiled-system (system)
((build-pathname :initarg :fasl))
((build-pathname :initarg :fasb :initarg :fasl))
(:documentation "Class For a system that is delivered as a precompiled fasl"))
(defclass prebuilt-system (system)
......@@ -341,7 +343,7 @@ or of opaque libraries shipped along the source code."))
(if monolithic 'monolithic-dll-op 'dll-op))
((:lib :static-library)
(if monolithic 'monolithic-lib-op 'lib-op))
((:fasl)
((:fasb)
(if monolithic 'monolithic-compile-bundle-op 'compile-bundle-op))
((:image)
'image-op)
......
......@@ -20,7 +20,7 @@
;; make sure mkcl-X.X.X.dll is the same directory as the executable
(let* ((dll-orig (subpathname (si::self-truename)
(strcat #-os-windows "../lib/"
"mkcl_" (lisp-implementation-version)
"mkcl_" (si:mkcl-version)
"." (asdf/bundle:bundle-pathname-type :shared-library))))
(dll-dest (subpathname pathname (strcat #-os-windows "../lib/" (file-namestring dll-orig)))))
(ensure-directories-exist dll-dest)
......
......@@ -122,8 +122,9 @@
#+(or ecl mkcl)
(progn
(DBG "Now create an program without UIOP")
(assert (probe-file (asdf/bundle::system-module-pathname "asdf")))
(assert (probe-file (asdf/bundle::system-module-pathname "cmp")))
#+mkcl (assert (probe-file* (asdf/bundle::system-module-pathname "uiop")))
(assert (probe-file* (asdf/bundle::system-module-pathname "asdf")))
#+ecl (assert (probe-file* (asdf/bundle::system-module-pathname "cmp")))
(def-test-system hello-no-uiop
:class program-system
:no-uiop t
......@@ -142,10 +143,9 @@
'("Look ma, no UIOP!" "And TEST-PACKAGE!" "And no ASDF!"))
(DBG "Now create an program with explicit ASDF dependency, without registered ASDF (use implementation-provided prebuilt)")
(trace c::builder) ;; component-depends-on input-files output-files
(assert-pathname-equal
(truename (pathname-directory-pathname (output-file 'lib-op (asdf/bundle::linkable-system "asdf"))))
(truename (lisp-implementation-directory)))
(truename (subpathname (lisp-implementation-directory) #+mkcl "contrib/" #-mkcl nil)))
(def-test-system hello-asdf
:class program-system
:depends-on ("asdf")
......
......@@ -445,7 +445,9 @@ or COMPRESSION on SBCL, and APPLICATION-TYPE on SBCL/Windows."
(shell-boolean-exit
(restore-image))))))))
(when forms `(progn ,@forms))))))
#+(or clasp ecl) (check-type kind (member :dll :shared-library :lib :static-library :program :fasl))
#+(or clasp ecl mkcl)
(check-type kind (member :dll :shared-library :lib :static-library
:fasl :fasb :program))
(apply #+clasp 'cmp:builder #+clasp kind
#+(or ecl mkcl)
(ecase kind
......@@ -453,13 +455,17 @@ or COMPRESSION on SBCL, and APPLICATION-TYPE on SBCL/Windows."
#+ecl 'c::build-shared-library #+mkcl 'compiler:build-shared-library)
((:lib :static-library)
#+ecl 'c::build-static-library #+mkcl 'compiler:build-static-library)
((:fasl)
((:fasl #+ecl :fasb)
#+ecl 'c::build-fasl #+mkcl 'compiler:build-fasl)
#+mkcl ((:fasb) 'compiler:build-bundle)
((:program)
#+ecl 'c::build-program #+mkcl 'compiler:build-program))
(pathname destination)
#+(or clasp ecl) :lisp-files #+mkcl :lisp-object-files (append lisp-object-files #+(or clasp ecl) extra-object-files)
#+(or clasp ecl) :init-name #+(or clasp ecl) (c::compute-init-name (or output-name destination) :kind kind)
#+(or clasp ecl) :lisp-files #+mkcl :lisp-object-files
(append lisp-object-files #+(or clasp ecl) extra-object-files)
#+ecl :init-name
#+ecl (c::compute-init-name (or output-name destination)
:kind (if (eq kind :fasb) :fasl kind))
(append
(when prologue-code `(:prologue-code ,prologue-code))
(when epilogue-code `(:epilogue-code ,epilogue-code))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment