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.")) ...@@ -110,7 +110,7 @@ itself."))
(defclass basic-compile-bundle-op (bundle-op basic-compile-op) (defclass basic-compile-bundle-op (bundle-op basic-compile-op)
((gather-type :initform #-(or clasp ecl mkcl) :fasl #+(or clasp ecl mkcl) :object ((gather-type :initform #-(or clasp ecl mkcl) :fasl #+(or clasp ecl mkcl) :object
:allocation :class) :allocation :class)
(bundle-type :initform :fasl :allocation :class)) (bundle-type :initform :fasb :allocation :class))
(:documentation "Base class for compiling into a bundle")) (:documentation "Base class for compiling into a bundle"))
;; Analog to prepare-op, for load-bundle-op and compile-bundle-op ;; 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 ...@@ -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 ((eql :no-output-file) ;; marker for a bundle-type that has NO output file
(error "No output file, therefore no pathname type")) (error "No output file, therefore no pathname type"))
((eql :fasl) ;; the type of a fasl ((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) (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 #+(or clasp ecl mkcl) "fasb") ; on C-linking platforms, only used as output for system bundles
((member :image) ((member :image)
...@@ -274,7 +276,7 @@ e.g. as part of the implementation, of an outer build system that calls into ASD ...@@ -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.")) or of opaque libraries shipped along the source code."))
(defclass precompiled-system (system) (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")) (:documentation "Class For a system that is delivered as a precompiled fasl"))
(defclass prebuilt-system (system) (defclass prebuilt-system (system)
...@@ -341,7 +343,7 @@ or of opaque libraries shipped along the source code.")) ...@@ -341,7 +343,7 @@ or of opaque libraries shipped along the source code."))
(if monolithic 'monolithic-dll-op 'dll-op)) (if monolithic 'monolithic-dll-op 'dll-op))
((:lib :static-library) ((:lib :static-library)
(if monolithic 'monolithic-lib-op 'lib-op)) (if monolithic 'monolithic-lib-op 'lib-op))
((:fasl) ((:fasb)
(if monolithic 'monolithic-compile-bundle-op 'compile-bundle-op)) (if monolithic 'monolithic-compile-bundle-op 'compile-bundle-op))
((:image) ((:image)
'image-op) 'image-op)
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
;; make sure mkcl-X.X.X.dll is the same directory as the executable ;; make sure mkcl-X.X.X.dll is the same directory as the executable
(let* ((dll-orig (subpathname (si::self-truename) (let* ((dll-orig (subpathname (si::self-truename)
(strcat #-os-windows "../lib/" (strcat #-os-windows "../lib/"
"mkcl_" (lisp-implementation-version) "mkcl_" (si:mkcl-version)
"." (asdf/bundle:bundle-pathname-type :shared-library)))) "." (asdf/bundle:bundle-pathname-type :shared-library))))
(dll-dest (subpathname pathname (strcat #-os-windows "../lib/" (file-namestring dll-orig))))) (dll-dest (subpathname pathname (strcat #-os-windows "../lib/" (file-namestring dll-orig)))))
(ensure-directories-exist dll-dest) (ensure-directories-exist dll-dest)
......
...@@ -122,8 +122,9 @@ ...@@ -122,8 +122,9 @@
#+(or ecl mkcl) #+(or ecl mkcl)
(progn (progn
(DBG "Now create an program without UIOP") (DBG "Now create an program without UIOP")
(assert (probe-file (asdf/bundle::system-module-pathname "asdf"))) #+mkcl (assert (probe-file* (asdf/bundle::system-module-pathname "uiop")))
(assert (probe-file (asdf/bundle::system-module-pathname "cmp"))) (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 (def-test-system hello-no-uiop
:class program-system :class program-system
:no-uiop t :no-uiop t
...@@ -142,10 +143,9 @@ ...@@ -142,10 +143,9 @@
'("Look ma, no UIOP!" "And TEST-PACKAGE!" "And no ASDF!")) '("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)") (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 (assert-pathname-equal
(truename (pathname-directory-pathname (output-file 'lib-op (asdf/bundle::linkable-system "asdf")))) (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 (def-test-system hello-asdf
:class program-system :class program-system
:depends-on ("asdf") :depends-on ("asdf")
......
...@@ -445,7 +445,9 @@ or COMPRESSION on SBCL, and APPLICATION-TYPE on SBCL/Windows." ...@@ -445,7 +445,9 @@ or COMPRESSION on SBCL, and APPLICATION-TYPE on SBCL/Windows."
(shell-boolean-exit (shell-boolean-exit
(restore-image)))))))) (restore-image))))))))
(when forms `(progn ,@forms)))))) (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 (apply #+clasp 'cmp:builder #+clasp kind
#+(or ecl mkcl) #+(or ecl mkcl)
(ecase kind (ecase kind
...@@ -453,13 +455,17 @@ or COMPRESSION on SBCL, and APPLICATION-TYPE on SBCL/Windows." ...@@ -453,13 +455,17 @@ or COMPRESSION on SBCL, and APPLICATION-TYPE on SBCL/Windows."
#+ecl 'c::build-shared-library #+mkcl 'compiler:build-shared-library) #+ecl 'c::build-shared-library #+mkcl 'compiler:build-shared-library)
((:lib :static-library) ((:lib :static-library)
#+ecl 'c::build-static-library #+mkcl 'compiler:build-static-library) #+ecl 'c::build-static-library #+mkcl 'compiler:build-static-library)
((:fasl) ((:fasl #+ecl :fasb)
#+ecl 'c::build-fasl #+mkcl 'compiler:build-fasl) #+ecl 'c::build-fasl #+mkcl 'compiler:build-fasl)
#+mkcl ((:fasb) 'compiler:build-bundle)
((:program) ((:program)
#+ecl 'c::build-program #+mkcl 'compiler:build-program)) #+ecl 'c::build-program #+mkcl 'compiler:build-program))
(pathname destination) (pathname destination)
#+(or clasp ecl) :lisp-files #+mkcl :lisp-object-files (append lisp-object-files #+(or clasp ecl) extra-object-files) #+(or clasp ecl) :lisp-files #+mkcl :lisp-object-files
#+(or clasp ecl) :init-name #+(or clasp ecl) (c::compute-init-name (or output-name destination) :kind kind) (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 (append
(when prologue-code `(:prologue-code ,prologue-code)) (when prologue-code `(:prologue-code ,prologue-code))
(when epilogue-code `(:epilogue-code ,epilogue-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