;;; -*-lisp-*- ;;; ;;; $Id$ ;;; ;;; Build necessary things ;;; ;;; (c) 2006 Straylight/Edgeware ;;; ;;;----- Licensing notice --------------------------------------------------- ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 2 of the License, or ;;; (at your option) any later version. ;;; ;;; This program is distributed in the hope that it will be useful, ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with this program; if not, write to the Free Software Foundation, ;;; Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. (handler-case (flet ((compile-if-necessary (name) (let* ((name (pathname name)) (args #+ecl '(:system-p t :c-file t) #-ecl nil) (object #+ecl (merge-pathnames (make-pathname :type "o") name) #-ecl (apply #'compile-file-pathname name args))) (unless (and (probe-file object) (< (file-write-date name) (file-write-date object))) (format t ";;; Compiling ~A -> ~A~%" name object) (apply #'compile-file name args)) (load object :verbose t)))) (let ((stamp (make-pathname :directory (list :relative) :name (format nil "build-~A" #+cmu "cmucl" #+clisp "clisp" #+ecl "ecl") :type "stamp"))) (ignore-errors (delete-file stamp)) (compile-if-necessary "runlisp.lisp") (with-open-file (dummy stamp :direction :output :if-exists :overwrite :if-does-not-exist :create) (declare (ignorable dummy))))) (error (cond) (format *error-output* "Build failure: ~A.~%" cond) (ext:quit 1))) (ext:quit 0) ;;;----- That's all, folks --------------------------------------------------