Changeset 9279


Ignore:
Timestamp:
05/30/05 01:59:01 (17 years ago)
Author:
piso
Message:

Work in progress.

Location:
trunk/j
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/j/build-abcl.lisp

    r9276 r9279  
    11;;; build-abcl.lisp
     2
     3(defpackage build-abcl
     4  (:use "COMMON-LISP")
     5  (:export #:build-abcl))
     6
     7(in-package #:build-abcl)
    28
    39(defparameter *platform-is-windows*
     
    3238    :input nil :output output)))
    3339
    34 #+sbcl
     40#+cmu
     41(defun run-shell-command (command &key directory (output *standard-output*))
     42  (when directory
     43    (setf command (concatenate 'string
     44                               "\\cd \""
     45                               (namestring (pathname directory))
     46                               "\" && "
     47                               command)))
     48  (ext::process-exit-code
     49   (ext:run-program
     50    "/bin/sh"
     51    (list  "-c" command)
     52    :input nil :output output)))
     53
     54#+clisp
     55(defun run-shell-command (command &key directory (output *standard-output*))
     56  (if directory
     57      (let ((old-directory (ext:cd)))
     58        (ext:cd directory)
     59        (unwind-protect
     60            (ext:run-shell-command command)
     61          (ext:cd old-directory)))
     62      (ext:run-shell-command command)))
     63
     64#+(or sbcl cmu)
    3565(defun probe-directory (pathspec)
    3666  (let* ((truename (probe-file pathspec))
     
    4575(defparameter *javac-options* nil)
    4676(defparameter *jikes-options* nil)
     77(defparameter *jar* nil)
    4778
    4879(defparameter *build-root*
     
    5081                 :directory (pathname-directory *load-truename*)))
    5182
    52 ;; (defparameter *source-root*
    53 ;;   (probe-directory (merge-pathnames "src/" *build-root*)))
    54 
    5583(defparameter *customizations-file*
    5684  (merge-pathnames "customizations.lisp" *build-root*))
     
    5987  (merge-pathnames "src/org/armedbear/lisp/" *build-root*))
    6088
    61 (defparameter *substitutions-alist*
    62   (acons "@LISP_HOME@"
    63 ;;          (let ((s (format nil "~S" (directory-namestring *abcl-dir*))))
    64 ;;            ;; Strip enclosing quotes.
    65 ;;            (subseq s 1 (1- (length s))))
    66          (directory-namestring *abcl-dir*)
    67          nil))
     89(defparameter *substitutions-alist* nil)
    6890
    6991(defvar *classpath*)
     
    85107                                               "bin/javac")
    86108                                           *jdk*)))
     109  (unless *jar*
     110    (setf *jar* (merge-pathnames (if *platform-is-windows*
     111                                     "bin/jar.exe"
     112                                     "bin/jar")
     113                                 *jdk*)))
    87114  (let ((classpath-components (list (merge-pathnames "src" *build-root*)
    88115                                    (merge-pathnames "jre/lib/rt.jar" *jdk*))))
     
    92119                  (component (car components) (car components)))
    93120                 ((null components))
    94               (princ (namestring (truename component)) s)
     121;;               (princ (namestring (truename component)) s)
     122              (princ (namestring component) s)
    95123              (unless (null (cdr components))
    96124                (write-char *path-separator-char* s))))))
     
    148176    (zerop (run-shell-command cmdline :directory *abcl-dir*))))
    149177
     178(defun make-jar ()
     179  (let ((*default-pathname-defaults* *build-root*)
     180        (jar-namestring (namestring *jar*)))
     181    (when (position #\space jar-namestring)
     182      (setf jar-namestring (concatenate 'string "\"" jar-namestring "\"")))
     183    (let ((*substitutions-alist* (acons "@JAR@" jar-namestring *substitutions-alist*)))
     184      (copy-with-substitutions "make-jar.in" "make-jar"))
     185    (let ((status (run-shell-command "sh make-jar" :directory *build-root*)))
     186      (unless (zerop status)
     187        (format t "sh make-jar returned ~S~%" status))
     188      status)))
     189
     190(defun clean ()
     191  (let ((*default-pathname-defaults* *abcl-dir*))
     192    (map nil #'delete-file (append (directory "*.class")
     193                                   (directory "*.abcl")
     194                                   (directory "*.cls")))))
     195
    150196(defun build-abcl (&key force
    151197                        (batch (if *platform-is-windows* nil t))
    152                         compile-system)
     198                        compile-system
     199                        jar
     200                        clean
     201                        full)
    153202  (let ((start (get-internal-real-time))
    154203        (*default-pathname-defaults* *abcl-dir*)
    155204        end)
    156205    (initialize-build)
     206    (when clean
     207      (clean))
    157208    (let* ((source-files (append (directory "*.java")
    158209                                 (directory "java/awt/*.java")))
     
    168219                (push source-file to-do)))))
    169220      (cond ((null to-do)
    170 ;;              (format t "Nothing to do!~%")
    171 ;;              (return-from build-abcl t)
    172              (format t "Classes are up-to-date.~%")
    173              )
     221             (format t "Classes are up to date.~%"))
    174222            (t
    175223             (format t "JDK: ~A~%" *jdk*)
     
    187235                                         s)
    188236                                        (princ #\space s))))
    189                            (result (run-shell-command cmdline :directory *abcl-dir*)))
    190                       (unless (zerop result)
     237                           (status (run-shell-command cmdline :directory *abcl-dir*)))
     238                      (unless (zerop status)
    191239                        (format t "Build failed.~%")
    192240                        (return-from build-abcl nil))))
     
    196244                        (format t "Build failed.~%")
    197245                        (return-from build-abcl nil)))))))
    198       (when compile-system
     246      (when (or compile-system full)
    199247        (let* ((java-namestring (namestring *java*))
    200248               (java-namestring-contains-space-p (position #\space java-namestring))
     
    208256                          (princ "src" s)
    209257                          (write-char #\space s)
    210                           (write-string "org.armedbear.lisp.Main --eval \"(progn (compile-system) (quit))\"" s))))
    211           (cond (*platform-is-windows*
    212                  (with-open-file (stream
    213                                   "compile-system.bat"
    214                                   :direction :output
    215                                   :if-exists :supersede)
    216                    (write cmdline :stream stream))
    217                  (run-shell-command "compile-system.bat"))
    218                 (t ; Linux
    219                  (run-shell-command cmdline)))))
     258                          (write-string "org.armedbear.lisp.Main --eval \"(compile-system :quit t)\"" s)))
     259               (status (cond (*platform-is-windows*
     260                              (with-open-file (stream
     261                                               "compile-system.bat"
     262                                               :direction :output
     263                                               :if-exists :supersede)
     264                                (write cmdline :stream stream))
     265                              (run-shell-command "compile-system.bat" :directory *build-root*))
     266                             (t ; Linux
     267                              (run-shell-command cmdline :directory *build-root*)))))
     268          (unless (zerop status)
     269            (format t "Build failed.~%")
     270            (return-from build-abcl nil))))
     271      (when (or jar full)
     272        (unless (make-jar)
     273          (format t "Build failed.~%")
     274          (return-from build-abcl nil)))
    220275      ;; Success!
    221276      (with-open-file (s
     
    244299         )
    245300    (zerop result)))
    246 
    247 (defun clean ()
    248   (let ((*default-pathname-defaults* *abcl-dir*))
    249     (map nil #'delete-file (append (directory "*.class")
    250                                    (directory "*.abcl")
    251                                    (directory "*.cls")))))
  • trunk/j/customizations.lisp

    r9276 r9279  
    22
    33;;; User customizations.
     4
     5(in-package #:build-abcl)
    46
    57(setf *javac-options* "-g")
     
    1719       (setf *java-compiler* "jikes")
    1820;;        (setf *java-compiler* "/home/peter/blackdown/j2sdk1.4.2/bin/javac")
    19        ))
     21       (setf *jar* "fastjar")))
Note: See TracChangeset for help on using the changeset viewer.