Loading src/compile.pre.w64deleted 100644 → 0 +0 −231 Original line number Diff line number Diff line ;;;; -*- Mode: Lisp; Syntax: Common-Lisp; Package: SYSTEM -*- ;;;; ;;;; Copyright (c) 2010-2012, Jean-Claude Beaudoin. ;;;; Copyright by a number of previous anonymous authors ;;;; presumed to be the same as for the rest of MKCL. ;;;; ;;;; This program is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU Lesser General Public ;;;; License as published by the Free Software Foundation; either ;;;; version 3 of the License, or (at your option) any later version. ;;;; ;;;; See file '../Copyright' for full details. ;;; compile.pre. Generated from compile.lsp.in by configure. ;;; ;;; This is the "compile" file for building MKCL. The purpose of this file is ;;; - Compile the core of the Common-Lisp library (lsp, clos) ;;; - Build an executable ;;; (progn (setq *package* (find-package "SYSTEM")) (setq *features* (cons :mkcl-bootstrap *features*)) ) ;;; ;;; * Ensure that we have the whole of Common-Lisp before we start to compile ;;; ;;(load "bare.lsp" :verbose nil) (let ((real-start (get-internal-real-time)) (run-start (get-internal-run-time)) real-end run-end) (load "bare.lsp" :verbose nil :external-format '(:ascii :lf)) (setq run-end (get-internal-run-time) real-end (get-internal-real-time)) (format *trace-output* "~2&load real time : ~,3F secs~%~ load run time : ~,3F secs~2%" (/ (- real-end real-start) internal-time-units-per-second) (/ (- run-end run-start) internal-time-units-per-second)) ) ;;(setq compiler::*trace-cc* t) #| (setq *compile-verbose* t *compile-print* t compiler::*suppress-compiler-messages* nil compiler::*suppress-compiler-warnings* nil compiler::*suppress-compiler-notes* nil) |# (load "compile-utils.lsp" :external-format '(:ascii :lf)) ;;; ;;; * Trick to make names shorter in C files ;;; (si::reopen-package "CL") (rename-package "CL" "CL" '("COMMON-LISP" "LISP")) ;(setq compiler::*compiler-break-enable* t) ;; to drop into the debugger on an error. (setf compiler::*ld-flags* compiler::*external-ld-flags* #| compiler::*ld-shared-flags* (concatenate 'base-string "-shared mkcl.dll " compiler::*ld-flags*) compiler::*ld-bundle-flags* #+:mingw32 ;; I bet this one is not even needed on mingw32! JCB (concatenate 'base-string "-shared mkcl.dll " compiler::*ld-flags*) #-:mingw32 "-shared " |# ) ;;; ;;; * Compile and link Common-Lisp base library ;;; (setq si::*keep-documentation* nil) ;; Remove documentation from compiled files (let* (#+windows (compiler::*cc-flags* (concatenate 'string "-DMKCL_API " compiler::*cc-flags*)) ;;(lsp-objects (compile-if-old "src:lsp;" +lisp-module-files+ :fasl-p nil)) (lsp-objects (compile-if-old "./lsp/" +lisp-module-files+ :fasl-p nil)) ) (let* ((compiler::*compile-to-linking-call* nil)) (setq lsp-objects (append lsp-objects ;;(compile-if-old "src:clos;" +clos-module-files+ :fasl-p nil) (compile-if-old "./clos/" +clos-module-files+ :fasl-p nil) ))) (let (;;(compiler::*suppress-compiler-messages* nil) ;;(compiler::*suppress-compiler-warnings* nil) ;;(compiler::*suppress-compiler-notes* nil) ;;(*compile-verbose* t) ;;(*compile-print* t) ) (format t "~&;;About to build static library liblsp.a~%") (unless (compiler:build-static-library "lsp" :lisp-object-files lsp-objects) (mkcl:quit :exit-code 1)) (format t "~&;;Done building liblsp.a!~%") )) ;;; ;;; (let* ((compiler::*ld-shared-flags* #+unix ;;"-shared libmkclgc.a -lgmp -lm" "-shared -lgmp -lm" #+mingw64 "-shared c:/Users/Jean-Claude/GNU2/mingw64/lib/libgmp.a -lws2_32 -lm" #+(or mingw32 cygwin) ;;"-shared -lws2_32 -lgmp -lm" "-shared -lws2_32 -lgmp -lm" #+msvc "-shared @STATICLIBS@ @CLIBS@" ) ;;(extra-ld-flags "") (extra-ld-flags #+unix (mkcl:bstr+ "-Wl,-soname,mkcl_" (si:mkcl-version) ".dll")) ;;#+windows ;;(compiler::*cc-flags* (concatenate 'string "-DMKCL_API " compiler::*cc-flags*)) ;;(extra-args nil) ) ;; #+(or mingw32 mingw64 cygwin) ;; (progn ;; ;; We need these two to force dllwrap to export the symbols ;; ;; in these libraries. Otherwise it will not be possible to ;; ;; call functions from GMP or GC in code that embeds MKCL. ;; (when (probe-file "libmkclgc.a") ;; (push "libmkclgc.a" extra-args)) ;; ;; (when (probe-file "libmkclgmp.a") ;; ;; (push "libmkclgmp.a" extra-args)) ;; ) (let (;;(compiler::*suppress-compiler-messages* nil) ;;(compiler::*suppress-compiler-warnings* nil) ;;(compiler::*suppress-compiler-notes* nil) ;;(*compile-verbose* t) ;;(*compile-print* t) ) (format t "~&;;About to build shared library mkcl_~A.dll~%" (si:mkcl-version)) (unless (compiler:build-shared-library (mkcl:bstr+ "mkcl_" (si:mkcl-version) ".dll") ;;"mkcl" ;;(compile-file-pathname "mkcl" :type :dll) :extra-ld-flags extra-ld-flags :object-files (list "c/all_symbols2.o" "liblsp.a" "libmkclmin.a" "libmkclgc.a" ;;extra-args ) ) (mkcl:quit :exit-code 1)) (format t "~&;;Done building libmkcl.so!~%") ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; THE FINAL EXECUTABLE ;;; (terpri) (princ ";;; About to build main executable mkcl.") #+unix (let (;;(compiler::*suppress-compiler-messages* nil) ;;(compiler::*suppress-compiler-warnings* nil) ;;(compiler::*suppress-compiler-notes* nil) ;;(*compile-verbose* t) ;;(*compile-print* t) #+(or) (compiler::*ld-flags* (concatenate 'base-string " -rdynamic libmkcltop.a liblsp.a " "libmkclmin.a " "libmkclgc.a " compiler::*external-ld-flags* )) (compiler::*ld-flags* compiler::*external-ld-flags*) ;; prevent -lmkcl from showing up. (object-files '("libmkcltop.a" "liblsp.a" "libmkclmin.a" "libmkclgc.a")) ) (unless (compiler:build-program "bin/mkcl-small" :object-files object-files :extra-ld-flags "-rdynamic" ;; export main executable symbols to loaded modules and fasls. ;; :extra-ld-flags "-pg -rdynamic" ;; for profiling ) (mkcl:quit :exit-code 1)) ) #+windows (let (;;(compiler::*suppress-compiler-messages* nil) ;;(compiler::*suppress-compiler-warnings* nil) ;;(compiler::*suppress-compiler-notes* nil) ;;(*compile-verbose* t) ;;(*compile-print* t) (compiler::*ld-flags* compiler::*external-ld-flags*) ;; prevent -lmkcl from showing up. (mkcl-lib-name (concatenate 'base-string compiler::+shared-library-prefix+ "mkcl_" (si:mkcl-version) "." compiler::+shared-library-extension+)) (target-name #+msvc "bin/mkcl2" #+(or mingw32 mingw64) "bin/mkcl-small") ) (unless (compiler:build-program target-name :object-files (list mkcl-lib-name) ) (mkcl:quit :exit-code 1)) ) (terpri) (princ ";;; Generating supplemental character encoding external support files.") (defvar *generate-verbose*) (setq *generate-verbose* nil) ;; Makes the generate.lisp script more verbose. (defvar *update-mapping*) (setq *update-mapping* nil) ;; Setting this to something other than nil may result in network activity. #+UNICODE (load "../contrib/encodings/generate.lisp" :external-format '(:ascii :lf)) (terpri) (princ ";;; All done in compile.lsp!") (terpri) (finish-output) (mkcl:quit :exit-code 0) ;; signal to "make" that all is well. Loading
src/compile.pre.w64deleted 100644 → 0 +0 −231 Original line number Diff line number Diff line ;;;; -*- Mode: Lisp; Syntax: Common-Lisp; Package: SYSTEM -*- ;;;; ;;;; Copyright (c) 2010-2012, Jean-Claude Beaudoin. ;;;; Copyright by a number of previous anonymous authors ;;;; presumed to be the same as for the rest of MKCL. ;;;; ;;;; This program is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU Lesser General Public ;;;; License as published by the Free Software Foundation; either ;;;; version 3 of the License, or (at your option) any later version. ;;;; ;;;; See file '../Copyright' for full details. ;;; compile.pre. Generated from compile.lsp.in by configure. ;;; ;;; This is the "compile" file for building MKCL. The purpose of this file is ;;; - Compile the core of the Common-Lisp library (lsp, clos) ;;; - Build an executable ;;; (progn (setq *package* (find-package "SYSTEM")) (setq *features* (cons :mkcl-bootstrap *features*)) ) ;;; ;;; * Ensure that we have the whole of Common-Lisp before we start to compile ;;; ;;(load "bare.lsp" :verbose nil) (let ((real-start (get-internal-real-time)) (run-start (get-internal-run-time)) real-end run-end) (load "bare.lsp" :verbose nil :external-format '(:ascii :lf)) (setq run-end (get-internal-run-time) real-end (get-internal-real-time)) (format *trace-output* "~2&load real time : ~,3F secs~%~ load run time : ~,3F secs~2%" (/ (- real-end real-start) internal-time-units-per-second) (/ (- run-end run-start) internal-time-units-per-second)) ) ;;(setq compiler::*trace-cc* t) #| (setq *compile-verbose* t *compile-print* t compiler::*suppress-compiler-messages* nil compiler::*suppress-compiler-warnings* nil compiler::*suppress-compiler-notes* nil) |# (load "compile-utils.lsp" :external-format '(:ascii :lf)) ;;; ;;; * Trick to make names shorter in C files ;;; (si::reopen-package "CL") (rename-package "CL" "CL" '("COMMON-LISP" "LISP")) ;(setq compiler::*compiler-break-enable* t) ;; to drop into the debugger on an error. (setf compiler::*ld-flags* compiler::*external-ld-flags* #| compiler::*ld-shared-flags* (concatenate 'base-string "-shared mkcl.dll " compiler::*ld-flags*) compiler::*ld-bundle-flags* #+:mingw32 ;; I bet this one is not even needed on mingw32! JCB (concatenate 'base-string "-shared mkcl.dll " compiler::*ld-flags*) #-:mingw32 "-shared " |# ) ;;; ;;; * Compile and link Common-Lisp base library ;;; (setq si::*keep-documentation* nil) ;; Remove documentation from compiled files (let* (#+windows (compiler::*cc-flags* (concatenate 'string "-DMKCL_API " compiler::*cc-flags*)) ;;(lsp-objects (compile-if-old "src:lsp;" +lisp-module-files+ :fasl-p nil)) (lsp-objects (compile-if-old "./lsp/" +lisp-module-files+ :fasl-p nil)) ) (let* ((compiler::*compile-to-linking-call* nil)) (setq lsp-objects (append lsp-objects ;;(compile-if-old "src:clos;" +clos-module-files+ :fasl-p nil) (compile-if-old "./clos/" +clos-module-files+ :fasl-p nil) ))) (let (;;(compiler::*suppress-compiler-messages* nil) ;;(compiler::*suppress-compiler-warnings* nil) ;;(compiler::*suppress-compiler-notes* nil) ;;(*compile-verbose* t) ;;(*compile-print* t) ) (format t "~&;;About to build static library liblsp.a~%") (unless (compiler:build-static-library "lsp" :lisp-object-files lsp-objects) (mkcl:quit :exit-code 1)) (format t "~&;;Done building liblsp.a!~%") )) ;;; ;;; (let* ((compiler::*ld-shared-flags* #+unix ;;"-shared libmkclgc.a -lgmp -lm" "-shared -lgmp -lm" #+mingw64 "-shared c:/Users/Jean-Claude/GNU2/mingw64/lib/libgmp.a -lws2_32 -lm" #+(or mingw32 cygwin) ;;"-shared -lws2_32 -lgmp -lm" "-shared -lws2_32 -lgmp -lm" #+msvc "-shared @STATICLIBS@ @CLIBS@" ) ;;(extra-ld-flags "") (extra-ld-flags #+unix (mkcl:bstr+ "-Wl,-soname,mkcl_" (si:mkcl-version) ".dll")) ;;#+windows ;;(compiler::*cc-flags* (concatenate 'string "-DMKCL_API " compiler::*cc-flags*)) ;;(extra-args nil) ) ;; #+(or mingw32 mingw64 cygwin) ;; (progn ;; ;; We need these two to force dllwrap to export the symbols ;; ;; in these libraries. Otherwise it will not be possible to ;; ;; call functions from GMP or GC in code that embeds MKCL. ;; (when (probe-file "libmkclgc.a") ;; (push "libmkclgc.a" extra-args)) ;; ;; (when (probe-file "libmkclgmp.a") ;; ;; (push "libmkclgmp.a" extra-args)) ;; ) (let (;;(compiler::*suppress-compiler-messages* nil) ;;(compiler::*suppress-compiler-warnings* nil) ;;(compiler::*suppress-compiler-notes* nil) ;;(*compile-verbose* t) ;;(*compile-print* t) ) (format t "~&;;About to build shared library mkcl_~A.dll~%" (si:mkcl-version)) (unless (compiler:build-shared-library (mkcl:bstr+ "mkcl_" (si:mkcl-version) ".dll") ;;"mkcl" ;;(compile-file-pathname "mkcl" :type :dll) :extra-ld-flags extra-ld-flags :object-files (list "c/all_symbols2.o" "liblsp.a" "libmkclmin.a" "libmkclgc.a" ;;extra-args ) ) (mkcl:quit :exit-code 1)) (format t "~&;;Done building libmkcl.so!~%") ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; THE FINAL EXECUTABLE ;;; (terpri) (princ ";;; About to build main executable mkcl.") #+unix (let (;;(compiler::*suppress-compiler-messages* nil) ;;(compiler::*suppress-compiler-warnings* nil) ;;(compiler::*suppress-compiler-notes* nil) ;;(*compile-verbose* t) ;;(*compile-print* t) #+(or) (compiler::*ld-flags* (concatenate 'base-string " -rdynamic libmkcltop.a liblsp.a " "libmkclmin.a " "libmkclgc.a " compiler::*external-ld-flags* )) (compiler::*ld-flags* compiler::*external-ld-flags*) ;; prevent -lmkcl from showing up. (object-files '("libmkcltop.a" "liblsp.a" "libmkclmin.a" "libmkclgc.a")) ) (unless (compiler:build-program "bin/mkcl-small" :object-files object-files :extra-ld-flags "-rdynamic" ;; export main executable symbols to loaded modules and fasls. ;; :extra-ld-flags "-pg -rdynamic" ;; for profiling ) (mkcl:quit :exit-code 1)) ) #+windows (let (;;(compiler::*suppress-compiler-messages* nil) ;;(compiler::*suppress-compiler-warnings* nil) ;;(compiler::*suppress-compiler-notes* nil) ;;(*compile-verbose* t) ;;(*compile-print* t) (compiler::*ld-flags* compiler::*external-ld-flags*) ;; prevent -lmkcl from showing up. (mkcl-lib-name (concatenate 'base-string compiler::+shared-library-prefix+ "mkcl_" (si:mkcl-version) "." compiler::+shared-library-extension+)) (target-name #+msvc "bin/mkcl2" #+(or mingw32 mingw64) "bin/mkcl-small") ) (unless (compiler:build-program target-name :object-files (list mkcl-lib-name) ) (mkcl:quit :exit-code 1)) ) (terpri) (princ ";;; Generating supplemental character encoding external support files.") (defvar *generate-verbose*) (setq *generate-verbose* nil) ;; Makes the generate.lisp script more verbose. (defvar *update-mapping*) (setq *update-mapping* nil) ;; Setting this to something other than nil may result in network activity. #+UNICODE (load "../contrib/encodings/generate.lisp" :external-format '(:ascii :lf)) (terpri) (princ ";;; All done in compile.lsp!") (terpri) (finish-output) (mkcl:quit :exit-code 0) ;; signal to "make" that all is well.