diff --git a/bundle.lisp b/bundle.lisp index 6f56525d0356c3a6d509fb8f3b2a2d81caba04eb..0406c2951be4b1c43f68ef52a8f5045f163a952e 100644 --- a/bundle.lisp +++ b/bundle.lisp @@ -35,7 +35,7 @@ concatenate together a system's components and all of its dependencies, but a simple concatenate operation will concatenate only the components of the system itself.")) - (defclass monolithic-bundle-op (monolithic-op bundle-op) + (defclass monolithic-bundle-op (bundle-op monolithic-op) ;; Old style way of specifying prologue and epilogue on ECL: in the monolithic operation. ;; DEPRECATED. Supported replacement: Define slots on program-system instead. ((prologue-code :initform nil :accessor prologue-code) @@ -165,7 +165,7 @@ for all the linkable object files associated with the system. Compare with LIB-O (:documentation "produce an asd file for delivering the system as a single fasl")) - (defclass monolithic-deliver-asd-op (monolithic-bundle-op deliver-asd-op) + (defclass monolithic-deliver-asd-op (deliver-asd-op monolithic-bundle-op) ((selfward-operation ;; TODO: implement link-op on all implementations, and make that ;; '(monolithic-compile-bundle-op monolithic-lib-op #-(or clasp ecl mkcl) monolithic-dll-op) @@ -174,7 +174,7 @@ for all the linkable object files associated with the system. Compare with LIB-O (:documentation "produce fasl and asd files for combined system and dependencies.")) (defclass monolithic-compile-bundle-op - (monolithic-bundle-op basic-compile-bundle-op + (basic-compile-bundle-op monolithic-bundle-op #+(or clasp ecl mkcl) link-op gather-operation non-propagating-operation) ((gather-operation :initform #-(or clasp ecl mkcl) 'compile-bundle-op #+(or clasp ecl mkcl) 'lib-op @@ -184,16 +184,16 @@ for all the linkable object files associated with the system. Compare with LIB-O :allocation :class)) (:documentation "Create a single fasl for the system and its dependencies.")) - (defclass monolithic-load-bundle-op (monolithic-bundle-op load-bundle-op) + (defclass monolithic-load-bundle-op (load-bundle-op monolithic-bundle-op) ((selfward-operation :initform 'monolithic-compile-bundle-op :allocation :class)) (:documentation "Load a single fasl for the system and its dependencies.")) - (defclass monolithic-lib-op (monolithic-bundle-op lib-op non-propagating-operation) + (defclass monolithic-lib-op (lib-op monolithic-bundle-op non-propagating-operation) ((gather-type :initform :static-library :allocation :class)) (:documentation "Compile the system and produce a linkable static library (.a/.lib) for all the linkable object files associated with the system or its dependencies. See LIB-OP.")) - (defclass monolithic-dll-op (monolithic-bundle-op dll-op non-propagating-operation) + (defclass monolithic-dll-op (dll-op monolithic-bundle-op non-propagating-operation) ((gather-type :initform :static-library :allocation :class)) (:documentation "Compile the system and produce a dynamic loadable library (.so/.dll) for all the linkable object files associated with the system or its dependencies. See LIB-OP")) diff --git a/test/ecl-make-image/hello.lisp b/test/ecl-make-image/hello.lisp index ee28f5d1cc9670e0638be958aea2a0c9e34a73f9..72f8818ab1b2eabe86992ce2154daa5912cf7f9d 100644 --- a/test/ecl-make-image/hello.lisp +++ b/test/ecl-make-image/hello.lisp @@ -4,5 +4,4 @@ (ffi::def-foreign-var ("hello_string" +hello-string+) (* :char) nil) -(print (ffi:convert-from-foreign-string +hello-string+)) - +(princ (ffi:convert-from-foreign-string +hello-string+)) diff --git a/test/ecl-make-image/hellow.asd b/test/ecl-make-image/hellow.asd index 7e2a49814ec614fd06363823896934c43347522e..8ca275bfa5a3951fa47d1373dc635b1e2ff3c63c 100644 --- a/test/ecl-make-image/hellow.asd +++ b/test/ecl-make-image/hellow.asd @@ -1,3 +1,11 @@ -(defsystem #:hellow - :serial t - :components ((:file "hello"))) +(defsystem "hellow" + :components ((:file "hello")) + :class program-system + :build-operation program-op + :build-pathname "hellow" + :prologue-code "printf(\"Good morning sunshine!\\n\");fflush(stdout);" + :epilogue-code (progn + (format t "~%Good bye sunshine.~%") + (ext:quit 0)) + :no-uiop t + :extra-build-args (:ld-flags #.(list (namestring (compile-file-pathname "hello_aux.c" :type :object))))) diff --git a/test/ecl-make-image/readme.lisp b/test/ecl-make-image/readme.lisp index ab14f7a20659c31b7a1c5d4cfc210204c7ce8817..30746edf7f6c928e5e9f486b312c008d93bd5c94 100644 --- a/test/ecl-make-image/readme.lisp +++ b/test/ecl-make-image/readme.lisp @@ -49,20 +49,7 @@ :defaults *load-truename*) asdf:*central-registry*) -(asdf:make-build :hellow - :type :program - :move-here "./" - :prologue-code "printf(\"Good morning sunshine!\");" - :epilogue-code '(progn - (format t "~%Good bye sunshine.~%") - (ext:quit 0)) - :ld-flags - (list (namestring (compile-file-pathname "hello_aux.c" :type :object)))) - -;; This doesn't seem to work -;; (asdf:operate 'asdf:program-op :hellow -;; :ld-flags -;; (list (namestring (compile-file-pathname "hello_aux.c" :type :object)))) +(asdf:make "hellow") ;; ;; * Test the program diff --git a/test/ecl-prebuilt-systems/hellow.asd b/test/ecl-prebuilt-systems/hellow.asd index b418b325c074b34ca23cf084b509bce5001a68c9..f564c0474e3a6dcc756037cc6e70c148ec83d06b 100644 --- a/test/ecl-prebuilt-systems/hellow.asd +++ b/test/ecl-prebuilt-systems/hellow.asd @@ -1,4 +1,8 @@ -(asdf:defsystem #:hellow - :serial t - :depends-on (#:asdf) - :components ((:file "hello"))) +(defsystem "hellow" + :depends-on ("asdf") + :components ((:file "hello")) + :class program-system + :build-operation program-op + :build-pathname "hellow" + :prologue-code "printf(\"Good morning sunshine!\");fflush(stdout);" + :epilogue-code (progn (format t "~%Good bye sunshine.~%") (ext:quit 0))) diff --git a/test/ecl-prebuilt-systems/readme.lisp b/test/ecl-prebuilt-systems/readme.lisp index e37e8ca9440a497dab921df3b90729882ed1be2a..aa9c011fe539872620c88442b8b4664b90577165 100644 --- a/test/ecl-prebuilt-systems/readme.lisp +++ b/test/ecl-prebuilt-systems/readme.lisp @@ -31,13 +31,7 @@ :defaults *load-truename*) asdf:*central-registry*) -(asdf:make-build :hellow - :type :program - :move-here "./" - :prologue-code "printf(\"Good morning sunshine!\");" - :epilogue-code '(progn - (format t "~%Good bye sunshine.~%") - (ext:quit 0))) +(asdf:make "hellow") ;; ;; * Test the program